100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair/* 200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Copyright 2008 the original author or authors. 300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * you may not use this file except in compliance with the License. 600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * You may obtain a copy of the License at 700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * http://www.apache.org/licenses/LICENSE-2.0 900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 1000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Unless required by applicable law or agreed to in writing, software 1100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * distributed under the License is distributed on an "AS IS" BASIS, 1200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * See the License for the specific language governing permissions and 1400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * limitations under the License. 1500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 1600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairpackage org.mockftpserver.fake.filesystem; 1700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 1800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair/** 1900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * File system entry representing a directory 2000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 2100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @author Chris Mair 2200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @version $Revision$ - $Date$ 2300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 2400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairpublic class DirectoryEntry extends AbstractFileSystemEntry { 2500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 2600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair /** 2700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Construct a new instance without setting its path 2800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 2900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair public DirectoryEntry() { 3000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 3100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 3200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair /** 3300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Construct a new instance with the specified value for its path 3400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 3500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @param path - the value for path 3600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 3700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair public DirectoryEntry(String path) { 3800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super(path); 3900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 4000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 4100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair /** 4200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Return true to indicate that this entry represents a directory 4300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 4400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @return true 4500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 4600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair public boolean isDirectory() { 4700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair return true; 4800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 4900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 5000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair /** 5100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Return the size of this directory. This method returns zero. 5200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 5300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @return the file size in bytes 5400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 5500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair public long getSize() { 5600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair return 0; 5700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 5800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 5900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair /** 6000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @see java.lang.Object#toString() 6100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 6200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair public String toString() { 6300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair return "Directory['" + getPath() + "' lastModified=" + getLastModified() + " owner=" + getOwner() + 6400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair " group=" + getGroup() + " permissions=" + getPermissions() + "]"; 6500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 6600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 6700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair /** 6800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Return a new FileSystemEntry that is a clone of this object, except having the specified path 6900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 7000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @param path - the new path value for the cloned file system entry 7100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @return a new FileSystemEntry that has all the same values as this object except for its path 7200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 7300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair public FileSystemEntry cloneWithNewPath(String path) { 7400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair DirectoryEntry clone = new DirectoryEntry(path); 7500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair clone.setLastModified(getLastModified()); 7600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair clone.setOwner(getOwner()); 7700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair clone.setGroup(getGroup()); 7800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair clone.setPermissions(getPermissions()); 7900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair return clone; 8000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 8100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 8200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair} 83