Class PlexusIoFileResource
- java.lang.Object
-
- org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
-
- org.codehaus.plexus.components.io.resources.PlexusIoFileResource
-
- All Implemented Interfaces:
FileInfo
,ContentSupplier
,FileSupplier
,NameSupplier
,ResourceAttributeSupplier
,SizeSupplier
,PlexusIoResource
- Direct Known Subclasses:
PlexusIoSymlinkResource
public class PlexusIoFileResource extends AbstractPlexusIoResource implements ResourceAttributeSupplier, FileSupplier
Implementation ofPlexusIoResource
for files.
-
-
Field Summary
Fields Modifier and Type Field Description private PlexusIoResourceAttributes
attributes
private ContentSupplier
contentSupplier
private org.apache.commons.io.output.DeferredFileOutputStream
dfos
private java.io.File
file
private static InputStreamTransformer
identityTransformer
-
Fields inherited from interface org.codehaus.plexus.components.io.resources.PlexusIoResource
UNKNOWN_MODIFICATION_DATE, UNKNOWN_RESOURCE_SIZE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PlexusIoFileResource(java.io.File file, java.lang.String name, PlexusIoResourceAttributes attrs)
(package private)
PlexusIoFileResource(java.io.File file, java.lang.String name, PlexusIoResourceAttributes attrs, ContentSupplier contentSupplier, InputStreamTransformer streamTransformer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static org.apache.commons.io.output.DeferredFileOutputStream
asDeferredStream(ContentSupplier supplier, InputStreamTransformer transToUse, PlexusIoResource resource)
PlexusIoResourceAttributes
getAttributes()
java.io.InputStream
getContents()
Creates anInputStream
, which may be used to read the files contents.java.io.File
getFile()
Returns the resource file.long
getLastModified()
Returns the date, when the resource was last modified, if known.static java.lang.String
getName(java.io.File file)
private static ContentSupplier
getRootContentSupplier(java.io.File file)
long
getSize()
Returns the resources size, if known.java.net.URL
getURL()
Returns anURL
, which may be used to reference the resource, if possible.boolean
isDirectory()
Returns, whether theFileInfo
refers to a directory.boolean
isExisting()
Returns, whether the resource exists.boolean
isFile()
Returns, whether theFileInfo
refers to a file.boolean
isSymbolicLink()
Returns, whether theFileInfo
refers to a symlink.-
Methods inherited from class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
getName
-
-
-
-
Field Detail
-
file
@Nonnull private final java.io.File file
-
attributes
@Nonnull private final PlexusIoResourceAttributes attributes
-
contentSupplier
private final ContentSupplier contentSupplier
-
dfos
private final org.apache.commons.io.output.DeferredFileOutputStream dfos
-
identityTransformer
private static final InputStreamTransformer identityTransformer
-
-
Constructor Detail
-
PlexusIoFileResource
protected PlexusIoFileResource(@Nonnull java.io.File file, @Nonnull java.lang.String name, @Nonnull PlexusIoResourceAttributes attrs) throws java.io.IOException
- Throws:
java.io.IOException
-
PlexusIoFileResource
PlexusIoFileResource(@Nonnull java.io.File file, @Nonnull java.lang.String name, @Nonnull PlexusIoResourceAttributes attrs, ContentSupplier contentSupplier, InputStreamTransformer streamTransformer) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
asDeferredStream
private static org.apache.commons.io.output.DeferredFileOutputStream asDeferredStream(@Nonnull ContentSupplier supplier, @Nonnull InputStreamTransformer transToUse, PlexusIoResource resource) throws java.io.IOException
- Throws:
java.io.IOException
-
getRootContentSupplier
private static ContentSupplier getRootContentSupplier(java.io.File file)
-
getName
public static java.lang.String getName(java.io.File file)
-
getFile
@Nonnull public java.io.File getFile()
Returns the resource file.- Specified by:
getFile
in interfaceFileSupplier
- Returns:
- The file
-
getContents
@Nonnull public java.io.InputStream getContents() throws java.io.IOException
Description copied from interface:PlexusIoResource
Creates anInputStream
, which may be used to read the files contents. This is useful, if the file selector comes to a decision based on the files contents. Please note that this InputStream is unbuffered. Clients should wrap this in a BufferedInputStream or attempt reading reasonably large chunks (8K+).- Specified by:
getContents
in interfaceContentSupplier
- Specified by:
getContents
in interfaceFileInfo
- Specified by:
getContents
in interfacePlexusIoResource
- Throws:
java.io.IOException
-
getURL
@Nonnull public java.net.URL getURL() throws java.io.IOException
Description copied from interface:PlexusIoResource
Returns anURL
, which may be used to reference the resource, if possible.- Specified by:
getURL
in interfacePlexusIoResource
- Returns:
- An URL referencing the resource, if possible, or null.
In the latter case, you are forced to use
PlexusIoResource.getContents()
. - Throws:
java.io.IOException
-
getSize
public long getSize()
Description copied from interface:PlexusIoResource
Returns the resources size, if known. Otherwise returnsPlexusIoResource.UNKNOWN_RESOURCE_SIZE
.- Specified by:
getSize
in interfacePlexusIoResource
- Specified by:
getSize
in interfaceSizeSupplier
- Overrides:
getSize
in classAbstractPlexusIoResource
-
isDirectory
public boolean isDirectory()
Description copied from interface:PlexusIoResource
Returns, whether theFileInfo
refers to a directory.- Specified by:
isDirectory
in interfaceFileInfo
- Specified by:
isDirectory
in interfacePlexusIoResource
- Overrides:
isDirectory
in classAbstractPlexusIoResource
-
isExisting
public boolean isExisting()
Description copied from interface:PlexusIoResource
Returns, whether the resource exists.- Specified by:
isExisting
in interfacePlexusIoResource
- Overrides:
isExisting
in classAbstractPlexusIoResource
-
isFile
public boolean isFile()
Description copied from interface:PlexusIoResource
Returns, whether theFileInfo
refers to a file.- Specified by:
isFile
in interfaceFileInfo
- Specified by:
isFile
in interfacePlexusIoResource
- Overrides:
isFile
in classAbstractPlexusIoResource
-
getAttributes
@Nonnull public PlexusIoResourceAttributes getAttributes()
- Specified by:
getAttributes
in interfaceResourceAttributeSupplier
-
getLastModified
public long getLastModified()
Description copied from interface:PlexusIoResource
Returns the date, when the resource was last modified, if known. Otherwise, returnsPlexusIoResource.UNKNOWN_MODIFICATION_DATE
.- Specified by:
getLastModified
in interfacePlexusIoResource
- Overrides:
getLastModified
in classAbstractPlexusIoResource
- See Also:
File.lastModified()
-
isSymbolicLink
public boolean isSymbolicLink()
Description copied from interface:FileInfo
Returns, whether theFileInfo
refers to a symlink. This does not necessarily mean that the underlying representation *is* a symlink on disk, but that this resource represents a symlink. This method will return "false" for java versions prior to java7.- Specified by:
isSymbolicLink
in interfaceFileInfo
- Overrides:
isSymbolicLink
in classAbstractPlexusIoResource
-
-