1abd32a990e145862f22d15316feedced5ad246aachrismair/* 2abd32a990e145862f22d15316feedced5ad246aachrismair * Copyright 2008 the original author or authors. 3334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 4abd32a990e145862f22d15316feedced5ad246aachrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5abd32a990e145862f22d15316feedced5ad246aachrismair * you may not use this file except in compliance with the License. 6abd32a990e145862f22d15316feedced5ad246aachrismair * You may obtain a copy of the License at 7334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 8abd32a990e145862f22d15316feedced5ad246aachrismair * http://www.apache.org/licenses/LICENSE-2.0 9334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 10abd32a990e145862f22d15316feedced5ad246aachrismair * Unless required by applicable law or agreed to in writing, software 11abd32a990e145862f22d15316feedced5ad246aachrismair * distributed under the License is distributed on an "AS IS" BASIS, 12abd32a990e145862f22d15316feedced5ad246aachrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13abd32a990e145862f22d15316feedced5ad246aachrismair * See the License for the specific language governing permissions and 14abd32a990e145862f22d15316feedced5ad246aachrismair * limitations under the License. 15abd32a990e145862f22d15316feedced5ad246aachrismair */ 16334c6ebce811c954bf2a79ba4579589a4a3326bfchrismairpackage org.mockftpserver.fake.filesystem; 17abd32a990e145862f22d15316feedced5ad246aachrismair 18abd32a990e145862f22d15316feedced5ad246aachrismair/** 19abd32a990e145862f22d15316feedced5ad246aachrismair * File system entry representing a directory 2081c5294b43234e26add70ffd5bfb8fbc31db45c9chrismair * 21abd32a990e145862f22d15316feedced5ad246aachrismair * @author Chris Mair 222a0a3f946dba517a01cc26278f905156857c9c91chrismair * @version $Revision$ - $Date$ 23abd32a990e145862f22d15316feedced5ad246aachrismair */ 24334c6ebce811c954bf2a79ba4579589a4a3326bfchrismairpublic class DirectoryEntry extends AbstractFileSystemEntry { 25abd32a990e145862f22d15316feedced5ad246aachrismair 26abd32a990e145862f22d15316feedced5ad246aachrismair /** 27334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * Construct a new instance without setting its path 28abd32a990e145862f22d15316feedced5ad246aachrismair */ 29334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair public DirectoryEntry() { 30abd32a990e145862f22d15316feedced5ad246aachrismair } 31abd32a990e145862f22d15316feedced5ad246aachrismair 32abd32a990e145862f22d15316feedced5ad246aachrismair /** 33334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * Construct a new instance with the specified value for its path 34334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 35abd32a990e145862f22d15316feedced5ad246aachrismair * @param path - the value for path 36abd32a990e145862f22d15316feedced5ad246aachrismair */ 37334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair public DirectoryEntry(String path) { 38334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair super(path); 39abd32a990e145862f22d15316feedced5ad246aachrismair } 40abd32a990e145862f22d15316feedced5ad246aachrismair 41abd32a990e145862f22d15316feedced5ad246aachrismair /** 42ef1713518991f8db0e129928853890a6508eade9chrismair * Return true to indicate that this entry represents a directory 43334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 44ef1713518991f8db0e129928853890a6508eade9chrismair * @return true 45abd32a990e145862f22d15316feedced5ad246aachrismair */ 46334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair public boolean isDirectory() { 47334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair return true; 48abd32a990e145862f22d15316feedced5ad246aachrismair } 4981c5294b43234e26add70ffd5bfb8fbc31db45c9chrismair 50abd32a990e145862f22d15316feedced5ad246aachrismair /** 511dfeab57f80c3a156a7ff11871c03f3f53033b9echrismair * Return the size of this directory. This method returns zero. 52334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 531dfeab57f80c3a156a7ff11871c03f3f53033b9echrismair * @return the file size in bytes 541dfeab57f80c3a156a7ff11871c03f3f53033b9echrismair */ 55334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair public long getSize() { 56334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair return 0; 571dfeab57f80c3a156a7ff11871c03f3f53033b9echrismair } 581dfeab57f80c3a156a7ff11871c03f3f53033b9echrismair 591dfeab57f80c3a156a7ff11871c03f3f53033b9echrismair /** 60abd32a990e145862f22d15316feedced5ad246aachrismair * @see java.lang.Object#toString() 61abd32a990e145862f22d15316feedced5ad246aachrismair */ 62334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair public String toString() { 63334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair return "Directory['" + getPath() + "' lastModified=" + getLastModified() + " owner=" + getOwner() + 64334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair " group=" + getGroup() + " permissions=" + getPermissions() + "]"; 65abd32a990e145862f22d15316feedced5ad246aachrismair } 6681c5294b43234e26add70ffd5bfb8fbc31db45c9chrismair 6709415075d96852489d096aea7ae07dd156b58643chrismair /** 6809415075d96852489d096aea7ae07dd156b58643chrismair * Return a new FileSystemEntry that is a clone of this object, except having the specified path 69334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair * 7009415075d96852489d096aea7ae07dd156b58643chrismair * @param path - the new path value for the cloned file system entry 7109415075d96852489d096aea7ae07dd156b58643chrismair * @return a new FileSystemEntry that has all the same values as this object except for its path 7209415075d96852489d096aea7ae07dd156b58643chrismair */ 73334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair public FileSystemEntry cloneWithNewPath(String path) { 74334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair DirectoryEntry clone = new DirectoryEntry(path); 75334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair clone.setLastModified(getLastModified()); 76334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair clone.setOwner(getOwner()); 77334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair clone.setGroup(getGroup()); 78334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair clone.setPermissions(getPermissions()); 79334c6ebce811c954bf2a79ba4579589a4a3326bfchrismair return clone; 8009415075d96852489d096aea7ae07dd156b58643chrismair } 8109415075d96852489d096aea7ae07dd156b58643chrismair 82abd32a990e145862f22d15316feedced5ad246aachrismair} 83