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