summaryrefslogtreecommitdiff
path: root/tags/2.1/src/main/java/org/mockftpserver/fake/filesystem/FileSystemEntry.java
diff options
context:
space:
mode:
Diffstat (limited to 'tags/2.1/src/main/java/org/mockftpserver/fake/filesystem/FileSystemEntry.java')
-rw-r--r--tags/2.1/src/main/java/org/mockftpserver/fake/filesystem/FileSystemEntry.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/tags/2.1/src/main/java/org/mockftpserver/fake/filesystem/FileSystemEntry.java b/tags/2.1/src/main/java/org/mockftpserver/fake/filesystem/FileSystemEntry.java
new file mode 100644
index 0000000..be99513
--- /dev/null
+++ b/tags/2.1/src/main/java/org/mockftpserver/fake/filesystem/FileSystemEntry.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2008 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.mockftpserver.fake.filesystem;
+
+import java.util.Date;
+
+/**
+ * Interface for an entry within a fake file system, representing a single file or directory.
+ *
+ * @author Chris Mair
+ * @version $Revision$ - $Date$
+ */
+public interface FileSystemEntry {
+
+ /**
+ * Return true if this entry represents a directory, false otherwise
+ *
+ * @return true if this file system entry is a directory, false otherwise
+ */
+ public boolean isDirectory();
+
+ /**
+ * Return the path for this file system entry
+ *
+ * @return the path for this file system entry
+ */
+ public String getPath();
+
+ /**
+ * Return the file name or directory name (no path) for this entry
+ *
+ * @return the file name or directory name (no path) for this entry
+ */
+ public String getName();
+
+ /**
+ * Return the size of this file system entry
+ *
+ * @return the file size in bytes
+ */
+ public long getSize();
+
+ /**
+ * Return the timestamp Date for the last modification of this file system entry
+ *
+ * @return the last modified timestamp Date for this file system entry
+ */
+ public Date getLastModified();
+
+ /**
+ * Set the timestamp Date for the last modification of this file system entry
+ *
+ * @param lastModified - the lastModified value, as a Date
+ */
+ public void setLastModified(Date lastModified);
+
+ /**
+ * @return the username of the owner of this file system entry
+ */
+ public String getOwner();
+
+ /**
+ * @return the name of the owning group for this file system entry
+ */
+ public String getGroup();
+
+ /**
+ * @return the Permissions for this file system entry
+ */
+ public Permissions getPermissions();
+
+ /**
+ * Return a new FileSystemEntry that is a clone of this object, except having the specified path
+ *
+ * @param path - the new path value for the cloned file system entry
+ * @return a new FileSystemEntry that has all the same values as this object except for its path
+ */
+ public FileSystemEntry cloneWithNewPath(String path);
+
+ /**
+ * Lock down the path so it cannot be changed
+ */
+ public void lockPath();
+
+} \ No newline at end of file