Package org.refcodes.filesystem
Class FileHandleImpl
- java.lang.Object
-
- org.refcodes.filesystem.FileHandleImpl
-
- All Implemented Interfaces:
FileHandle
,org.refcodes.mixin.CreatedDateAccessor
,org.refcodes.mixin.ModifiedDateAccessor
,org.refcodes.mixin.NameAccessor
,org.refcodes.mixin.PathAccessor
,org.refcodes.mixin.SizeAccessor
- Direct Known Subclasses:
FileHandleImpl.MutableFileHandleImpl
public class FileHandleImpl extends java.lang.Object implements FileHandle
Straight forward implementation of theFileHandle
,.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
FileHandleImpl.MutableFileHandleImpl
The 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 cause problems especially in collections!-
Nested classes/interfaces inherited from interface org.refcodes.mixin.CreatedDateAccessor
org.refcodes.mixin.CreatedDateAccessor.CreatedDateMutator, org.refcodes.mixin.CreatedDateAccessor.CreatedDateProperty
-
Nested classes/interfaces inherited from interface org.refcodes.filesystem.FileHandle
FileHandle.MutableFileHandle
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.ModifiedDateAccessor
org.refcodes.mixin.ModifiedDateAccessor.ModifiedDateMutator, org.refcodes.mixin.ModifiedDateAccessor.ModifiedDateProperty
-
Nested 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.NameProperty
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Date
_createdDate
protected java.util.Date
_modifiedDate
protected java.lang.String
_name
protected java.lang.String
_path
protected long
_size
-
Constructor Summary
Constructors Constructor Description FileHandleImpl(java.lang.String aKey)
Constructs aFileHandle
object with the given properties.FileHandleImpl(java.lang.String aPath, java.lang.String aName)
Constructs aFileHandle
object with the given properties.FileHandleImpl(java.lang.String aPath, java.lang.String aName, long aSize, java.util.Date aCreatedDate, java.util.Date aModifiedDate)
Constructs aFileHandle
object with the given properties.FileHandleImpl(FileHandle aFileHandle)
Constructs aFileHandle
object with the properties of the givenFileHandle
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
java.util.Date
getCreatedDate()
The date when the file was created.java.util.Date
getModifiedDate()
The date when the file was modified.java.lang.String
getName()
The name is the part of the key without the path.java.lang.String
getPath()
The path is the part of the key without the name.long
getSize()
The size of the content of the file.int
hashCode()
java.lang.String
toKey()
The key is the fully qualified name to identify the file.FileHandle.MutableFileHandle
toMutableFileHandle()
Converts the giveFileHandle
to aFileHandle.MutableFileHandle
.
-
-
-
Constructor Detail
-
FileHandleImpl
public FileHandleImpl(java.lang.String aPath, java.lang.String aName, long aSize, java.util.Date aCreatedDate, java.util.Date aModifiedDate)
Constructs aFileHandle
object 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
public FileHandleImpl(java.lang.String aKey)
Constructs aFileHandle
object with the given properties.- Parameters:
aKey
- The path and the name (= the key) to which the file handle points.
-
FileHandleImpl
public FileHandleImpl(java.lang.String aPath, java.lang.String aName)
Constructs aFileHandle
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 aFileHandle
object with the properties of the givenFileHandle
.- Parameters:
aFileHandle
- TheFileHandle
from which to take the required properties.
-
-
Method Detail
-
getPath
public java.lang.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'sFileSystem.PATH_DELIMITER
attribute.- Specified by:
getPath
in interfaceFileHandle
- Specified by:
getPath
in interfaceorg.refcodes.mixin.PathAccessor
- Returns:
- The path of the file's key without the name.
-
getName
public java.lang.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'sFileSystem.PATH_DELIMITER
attribute.- Specified by:
getName
in interfaceFileHandle
- Specified by:
getName
in interfaceorg.refcodes.mixin.NameAccessor
- Returns:
- The name of the file's key without the path.
-
toKey
public java.lang.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 interfaceFileHandle
- Returns:
- The fully qualified key of the file.
-
getSize
public long getSize()
The size of the content of the file.- Specified by:
getSize
in interfaceFileHandle
- Specified by:
getSize
in interfaceorg.refcodes.mixin.SizeAccessor
- Returns:
- The content size of the file.
-
getCreatedDate
public java.util.Date getCreatedDate()
The date when the file was created.- Specified by:
getCreatedDate
in interfaceorg.refcodes.mixin.CreatedDateAccessor
- Specified by:
getCreatedDate
in interfaceFileHandle
- Returns:
- The creation date.
-
getModifiedDate
public java.util.Date getModifiedDate()
The date when the file was modified.- Specified by:
getModifiedDate
in interfaceFileHandle
- Specified by:
getModifiedDate
in interfaceorg.refcodes.mixin.ModifiedDateAccessor
- Returns:
- The modification date.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
toMutableFileHandle
public FileHandle.MutableFileHandle toMutableFileHandle()
Converts the giveFileHandle
to aFileHandle.MutableFileHandle
. The mutableFileHandle
allows the modification of (fiddling around with) attributes. ------------------------------------------------------------------------- ATTENTION: Usually fiddling around with attributes is not necessary, as theFileSystem
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 theFileHandle
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 theFileHandle
know how to create aFileHandle.MutableFileHandle
without information loss, the business logic does not require to take care of any yet unknown extensions. ------------------------------------------------------------------------- CAUTION: Working with modifiedFileHandle
s on theFileSystem
can cause 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 aFileHandle
to avoid hassle with collections, theObject.hashCode()
and theObject.equals(Object)
operations.- Specified by:
toMutableFileHandle
in interfaceFileHandle
- Returns:
- the mutable file handle
-
-