1dfb59d50631968ab1a13002ea5421ece93169851chrismair/* 2dfb59d50631968ab1a13002ea5421ece93169851chrismair * Copyright 2008 the original author or authors. 3dfb59d50631968ab1a13002ea5421ece93169851chrismair * 4dfb59d50631968ab1a13002ea5421ece93169851chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5dfb59d50631968ab1a13002ea5421ece93169851chrismair * you may not use this file except in compliance with the License. 6dfb59d50631968ab1a13002ea5421ece93169851chrismair * You may obtain a copy of the License at 7dfb59d50631968ab1a13002ea5421ece93169851chrismair * 8dfb59d50631968ab1a13002ea5421ece93169851chrismair * http://www.apache.org/licenses/LICENSE-2.0 9dfb59d50631968ab1a13002ea5421ece93169851chrismair * 10dfb59d50631968ab1a13002ea5421ece93169851chrismair * Unless required by applicable law or agreed to in writing, software 11dfb59d50631968ab1a13002ea5421ece93169851chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12dfb59d50631968ab1a13002ea5421ece93169851chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dfb59d50631968ab1a13002ea5421ece93169851chrismair * See the License for the specific language governing permissions and 14dfb59d50631968ab1a13002ea5421ece93169851chrismair * limitations under the License. 15dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 16dfb59d50631968ab1a13002ea5421ece93169851chrismairpackage org.mockftpserver.fake.filesystem; 17dfb59d50631968ab1a13002ea5421ece93169851chrismair 18dfb59d50631968ab1a13002ea5421ece93169851chrismair/** 19dfb59d50631968ab1a13002ea5421ece93169851chrismair * File system entry representing a directory 20dfb59d50631968ab1a13002ea5421ece93169851chrismair * 21dfb59d50631968ab1a13002ea5421ece93169851chrismair * @author Chris Mair 22dfb59d50631968ab1a13002ea5421ece93169851chrismair * @version $Revision$ - $Date$ 23dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 24dfb59d50631968ab1a13002ea5421ece93169851chrismairpublic class DirectoryEntry extends AbstractFileSystemEntry { 25dfb59d50631968ab1a13002ea5421ece93169851chrismair 26dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 27dfb59d50631968ab1a13002ea5421ece93169851chrismair * Construct a new instance without setting its path 28dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 29dfb59d50631968ab1a13002ea5421ece93169851chrismair public DirectoryEntry() { 30dfb59d50631968ab1a13002ea5421ece93169851chrismair } 31dfb59d50631968ab1a13002ea5421ece93169851chrismair 32dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 33dfb59d50631968ab1a13002ea5421ece93169851chrismair * Construct a new instance with the specified value for its path 34dfb59d50631968ab1a13002ea5421ece93169851chrismair * 35dfb59d50631968ab1a13002ea5421ece93169851chrismair * @param path - the value for path 36dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 37dfb59d50631968ab1a13002ea5421ece93169851chrismair public DirectoryEntry(String path) { 38dfb59d50631968ab1a13002ea5421ece93169851chrismair super(path); 39dfb59d50631968ab1a13002ea5421ece93169851chrismair } 40dfb59d50631968ab1a13002ea5421ece93169851chrismair 41dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 42dfb59d50631968ab1a13002ea5421ece93169851chrismair * Return true to indicate that this entry represents a directory 43dfb59d50631968ab1a13002ea5421ece93169851chrismair * 44dfb59d50631968ab1a13002ea5421ece93169851chrismair * @return true 45dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 46dfb59d50631968ab1a13002ea5421ece93169851chrismair public boolean isDirectory() { 47dfb59d50631968ab1a13002ea5421ece93169851chrismair return true; 48dfb59d50631968ab1a13002ea5421ece93169851chrismair } 49dfb59d50631968ab1a13002ea5421ece93169851chrismair 50dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 51dfb59d50631968ab1a13002ea5421ece93169851chrismair * Return the size of this directory. This method returns zero. 52dfb59d50631968ab1a13002ea5421ece93169851chrismair * 53dfb59d50631968ab1a13002ea5421ece93169851chrismair * @return the file size in bytes 54dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 55dfb59d50631968ab1a13002ea5421ece93169851chrismair public long getSize() { 56dfb59d50631968ab1a13002ea5421ece93169851chrismair return 0; 57dfb59d50631968ab1a13002ea5421ece93169851chrismair } 58dfb59d50631968ab1a13002ea5421ece93169851chrismair 59dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 60dfb59d50631968ab1a13002ea5421ece93169851chrismair * @see java.lang.Object#toString() 61dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 62dfb59d50631968ab1a13002ea5421ece93169851chrismair public String toString() { 63dfb59d50631968ab1a13002ea5421ece93169851chrismair return "Directory['" + getPath() + "' lastModified=" + getLastModified() + " owner=" + getOwner() + 64dfb59d50631968ab1a13002ea5421ece93169851chrismair " group=" + getGroup() + " permissions=" + getPermissions() + "]"; 65dfb59d50631968ab1a13002ea5421ece93169851chrismair } 66dfb59d50631968ab1a13002ea5421ece93169851chrismair 67dfb59d50631968ab1a13002ea5421ece93169851chrismair /** 68dfb59d50631968ab1a13002ea5421ece93169851chrismair * Return a new FileSystemEntry that is a clone of this object, except having the specified path 69dfb59d50631968ab1a13002ea5421ece93169851chrismair * 70dfb59d50631968ab1a13002ea5421ece93169851chrismair * @param path - the new path value for the cloned file system entry 71dfb59d50631968ab1a13002ea5421ece93169851chrismair * @return a new FileSystemEntry that has all the same values as this object except for its path 72dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 73dfb59d50631968ab1a13002ea5421ece93169851chrismair public FileSystemEntry cloneWithNewPath(String path) { 74dfb59d50631968ab1a13002ea5421ece93169851chrismair DirectoryEntry clone = new DirectoryEntry(path); 75dfb59d50631968ab1a13002ea5421ece93169851chrismair clone.setLastModified(getLastModified()); 76dfb59d50631968ab1a13002ea5421ece93169851chrismair clone.setOwner(getOwner()); 77dfb59d50631968ab1a13002ea5421ece93169851chrismair clone.setGroup(getGroup()); 78dfb59d50631968ab1a13002ea5421ece93169851chrismair clone.setPermissions(getPermissions()); 79dfb59d50631968ab1a13002ea5421ece93169851chrismair return clone; 80dfb59d50631968ab1a13002ea5421ece93169851chrismair } 81dfb59d50631968ab1a13002ea5421ece93169851chrismair 82dfb59d50631968ab1a13002ea5421ece93169851chrismair} 83