Class FileHandleImpl
java.lang.Object
org.refcodes.filesystem.FileHandleImpl
- All Implemented Interfaces:
FileHandle,FileSizeAccessor,org.refcodes.mixin.CreatedDateAccessor,org.refcodes.mixin.ModifiedDateAccessor,org.refcodes.mixin.NameAccessor,org.refcodes.mixin.PathAccessor
- Direct Known Subclasses:
FileHandleImpl.MutableFileHandleImpl
Straight forward implementation of the
FileHandle,.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassThe implementation of aFileHandle.MutableFileHandle. ------------------------------------------------------------------------- CAUTION: fiddling with the path and the name attributes causes theFileHandleImpl.MutableFileHandleImpl.hashCode()andFileHandleImpl.MutableFileHandleImpl.equals(Object)methods to change behavior which can aCause problems ehttps://www.metacodes.proly in collections!Nested classes/interfaces inherited from interface org.refcodes.mixin.CreatedDateAccessor
org.refcodes.mixin.CreatedDateAccessor.CreatedDateMutator, org.refcodes.mixin.CreatedDateAccessor.CreatedDatePropertyNested classes/interfaces inherited from interface org.refcodes.filesystem.FileHandle
FileHandle.MutableFileHandleNested classes/interfaces inherited from interface org.refcodes.filesystem.FileSizeAccessor
FileSizeAccessor.FileSizeBuilder<B extends FileSizeAccessor.FileSizeBuilder<B>>, FileSizeAccessor.FileSizeMutator, FileSizeAccessor.FileSizePropertyNested classes/interfaces inherited from interface org.refcodes.mixin.ModifiedDateAccessor
org.refcodes.mixin.ModifiedDateAccessor.ModifiedDateMutator, org.refcodes.mixin.ModifiedDateAccessor.ModifiedDatePropertyNested classes/interfaces inherited from interface org.refcodes.mixin.NameAccessor
org.refcodes.mixin.NameAccessor.NameBuilder<B extends org.refcodes.mixin.NameAccessor.NameBuilder<B>>, org.refcodes.mixin.NameAccessor.NameMutator, org.refcodes.mixin.NameAccessor.NamePropertyNested classes/interfaces inherited from interface org.refcodes.mixin.PathAccessor
org.refcodes.mixin.PathAccessor.PathBuilder<B extends org.refcodes.mixin.PathAccessor.PathBuilder<?>>, org.refcodes.mixin.PathAccessor.PathMutator, org.refcodes.mixin.PathAccessor.PathProperty -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionFileHandleImpl(String aKey) Constructs aFileHandleobject with the given properties.FileHandleImpl(String aPath, String aName) Constructs aFileHandleobject with the given properties.FileHandleImpl(String aPath, String aName, long aSize, Date aCreatedDate, Date aModifiedDate) Constructs aFileHandleobject with the given properties.FileHandleImpl(FileHandle aFileHandle) Constructs aFileHandleobject with the properties of the givenFileHandle. -
Method Summary
Modifier and TypeMethodDescriptionbooleanThe date when the file was created.longThe size of the content of the file.The date when the file was modified.getName()The name is the part of the key without the path.getPath()The path is the part of the key without the name.inthashCode()toKey()The key is the fully qualified name to identify the file.Converts the giveFileHandleto aFileHandle.MutableFileHandle.
-
Field Details
-
_path
-
_name
-
_size
protected long _size -
_createdDate
-
_modifiedDate
-
-
Constructor Details
-
FileHandleImpl
public FileHandleImpl(String aPath, String aName, long aSize, Date aCreatedDate, Date aModifiedDate) Constructs aFileHandleobject with the given properties.- Parameters:
aPath- The path to which the file handle points.aName- The name to which the path pointsaSize- The size of the fileaCreatedDate- The creation date of the fileaModifiedDate- The modified date of the file
-
FileHandleImpl
Constructs aFileHandleobject with the given properties.- Parameters:
aKey- The path and the name (= the key) to which the file handle points.
-
FileHandleImpl
Constructs aFileHandleobject with the given properties.- Parameters:
aPath- The path to which the file handle points.aName- The name to which the path points
-
FileHandleImpl
Constructs aFileHandleobject with the properties of the givenFileHandle.- Parameters:
aFileHandle- TheFileHandlefrom which to take the required properties.
-
-
Method Details
-
getPath
The path is the part of the key without the name. The path separator is not implementation specific and should be retrieved from the file system'sFileSystem.PATH_DELIMITERattribute.- Specified by:
getPathin interfaceFileHandle- Specified by:
getPathin interfaceorg.refcodes.mixin.PathAccessor- Returns:
- The path of the file's key without the name.
-
getName
The name is the part of the key without the path. The path separator is not implementation specific and should be retrieved from the file system'sFileSystem.PATH_DELIMITERattribute.- Specified by:
getNamein interfaceFileHandle- Specified by:
getNamein interfaceorg.refcodes.mixin.NameAccessor- Returns:
- The name of the file's key without the path.
-
toKey
The key is the fully qualified name to identify the file. The key usually is physically (directory path and filename) or virtually composed of the path and the name.- Specified by:
toKeyin interfaceFileHandle- Returns:
- The fully qualified key of the file.
-
getFileSize
public long getFileSize()The size of the content of the file.- Specified by:
getFileSizein interfaceFileHandle- Specified by:
getFileSizein interfaceFileSizeAccessor- Returns:
- The content size of the file.
-
getCreatedDate
The date when the file was created.- Specified by:
getCreatedDatein interfaceorg.refcodes.mixin.CreatedDateAccessor- Specified by:
getCreatedDatein interfaceFileHandle- Returns:
- The creation date.
-
getModifiedDate
The date when the file was modified.- Specified by:
getModifiedDatein interfaceFileHandle- Specified by:
getModifiedDatein interfaceorg.refcodes.mixin.ModifiedDateAccessor- Returns:
- The modification date.
-
hashCode
-
equals
-
toMutableFileHandle
Converts the giveFileHandleto aFileHandle.MutableFileHandle. The mutableFileHandleallows the modification of (fiddling around with) attributes. ------------------------------------------------------------------------- ATTENTION: Usually fiddling around with attributes is not necessary, as theFileSystemitself provides the sufficient functionality to work with files. In some cases though this might be necessary: This method is being provided to allow modification of file attributes while making sure that theFileHandleitself creates a copy so that any additional attributes provided by extensions of this interface of whom the developer does not know (yet) are preserved. So extensions of theFileHandleknow how to create aFileHandle.MutableFileHandlewithout information loss, the business logic does not require to take care of any yet unknown extensions. ------------------------------------------------------------------------- CAUTION: Working with modifiedFileHandles on theFileSystemcan aCause unexpected (severe) behavior (data loss), so we assume that you know what you do when using theFileHandle.MutableFileHandle! ------------------------------------------------------------------------- UseFileHandle.MutableFileHandle.toFileHandle()to get back to aFileHandleto avoid hassle with collections, theObject.hashCode()and theObject.equals(Object)operations.- Specified by:
toMutableFileHandlein interfaceFileHandle- Returns:
- the mutable file handle
-