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

public class FileHandleImpl extends Object implements FileHandle
Straight forward implementation of the FileHandle,.
  • Field Details

    • _path

      protected String _path
    • _name

      protected String _name
    • _size

      protected long _size
    • _createdDate

      protected Date _createdDate
    • _modifiedDate

      protected Date _modifiedDate
  • Constructor Details

    • FileHandleImpl

      public FileHandleImpl(String aPath, String aName, long aSize, Date aCreatedDate, Date aModifiedDate)
      Constructs a FileHandle object with the given properties.
      Parameters:
      aPath - The path to which the file handle points.
      aName - The name to which the path points
      aSize - The size of the file
      aCreatedDate - The creation date of the file
      aModifiedDate - The modified date of the file
    • FileHandleImpl

      public FileHandleImpl(String aKey)
      Constructs a FileHandle object with the given properties.
      Parameters:
      aKey - The path and the name (= the key) to which the file handle points.
    • FileHandleImpl

      public FileHandleImpl(String aPath, String aName)
      Constructs a FileHandle object with the given properties.
      Parameters:
      aPath - The path to which the file handle points.
      aName - The name to which the path points
    • FileHandleImpl

      public FileHandleImpl(FileHandle aFileHandle)
      Constructs a FileHandle object with the properties of the given FileHandle.
      Parameters:
      aFileHandle - The FileHandle from which to take the required properties.
  • Method Details

    • getPath

      public String 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's FileSystem.PATH_DELIMITER attribute.
      Specified by:
      getPath in interface FileHandle
      Specified by:
      getPath in interface org.refcodes.mixin.PathAccessor
      Returns:
      The path of the file's key without the name.
    • getName

      public String 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's FileSystem.PATH_DELIMITER attribute.
      Specified by:
      getName in interface FileHandle
      Specified by:
      getName in interface org.refcodes.mixin.NameAccessor
      Returns:
      The name of the file's key without the path.
    • toKey

      public String 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:
      toKey in interface FileHandle
      Returns:
      The fully qualified key of the file.
    • getFileSize

      public long getFileSize()
      The size of the content of the file.
      Specified by:
      getFileSize in interface FileHandle
      Specified by:
      getFileSize in interface FileSizeAccessor
      Returns:
      The content size of the file.
    • getCreatedDate

      public Date getCreatedDate()
      The date when the file was created.
      Specified by:
      getCreatedDate in interface org.refcodes.mixin.CreatedDateAccessor
      Specified by:
      getCreatedDate in interface FileHandle
      Returns:
      The creation date.
    • getModifiedDate

      public Date getModifiedDate()
      The date when the file was modified.
      Specified by:
      getModifiedDate in interface FileHandle
      Specified by:
      getModifiedDate in interface org.refcodes.mixin.ModifiedDateAccessor
      Returns:
      The modification date.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toMutableFileHandle

      public FileHandle.MutableFileHandle toMutableFileHandle()
      Converts the give FileHandle to a FileHandle.MutableFileHandle. The mutable FileHandle allows the modification of (fiddling around with) attributes. ------------------------------------------------------------------------- ATTENTION: Usually fiddling around with attributes is not necessary, as the FileSystem itself 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 the FileHandle itself 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 the FileHandle know how to create a FileHandle.MutableFileHandle without information loss, the business logic does not require to take care of any yet unknown extensions. ------------------------------------------------------------------------- CAUTION: Working with modified FileHandles on the FileSystem can cause unexpected (severe) behavior (data loss), so we assume that you know what you do when using the FileHandle.MutableFileHandle! ------------------------------------------------------------------------- Use FileHandle.MutableFileHandle.toFileHandle() to get back to a FileHandle to avoid hassle with collections, the Object.hashCode() and the Object.equals(Object) operations.
      Specified by:
      toMutableFileHandle in interface FileHandle
      Returns:
      the mutable file handle