Class PathResource
- All Implemented Interfaces:
Closeable,AutoCloseable,ResourceFactory
-
Field Summary
Fields inherited from class org.eclipse.jetty.util.resource.Resource
__defaultUseCaches -
Constructor Summary
ConstructorsConstructorDescriptionPathResource(File file) Construct a new PathResource from a File object.PathResource(URI uri) Construct a new PathResource from a URI object.PathResource(URL url) Create a new PathResource from a provided URL object.PathResource(Path path) Construct a new PathResource from a Path object. -
Method Summary
Modifier and TypeMethodDescriptionReturns the resource contained inside the current resource with the given name, which may or may not exist.voidclose()Release any temporary resources held by the resource.voidCopy the Resource to the new destination file.booleandelete()Deletes the given resourcebooleanbooleanexists()getAlias()The Alias as a Path.getFile()File representing the given resource.Input stream to the resourcegetName()The name of the resource.getPath()Readable ByteChannel for the resource.getURI()URI representing the resource.inthashCode()booleanisAlias()booleanbooleanbooleanReturn true if the passed Resource represents the same resource as the Resource.static booleanisSameName(Path pathA, Path pathB) Test if the paths are the same name.longTime resource was last modified.longlength()Length of the resource.String[]list()list of resource names contained in the given resource.booleanRename the given resourcetoString()Methods inherited from class org.eclipse.jetty.util.resource.Resource
fromList, fromList, getAllResources, getAssociate, getDefaultUseCaches, getListHTML, getResource, getWeakETag, getWeakETag, isContainedIn, newClassPathResource, newClassPathResource, newResource, newResource, newResource, newResource, newResource, newResource, newSystemResource, resolveAlias, setAssociate, setDefaultUseCaches, toURL
-
Constructor Details
-
PathResource
Construct a new PathResource from a File object.An invocation of this convenience constructor of the form.
new PathResource(file);
behaves in exactly the same way as the expression
new PathResource(file.toPath());
- Parameters:
file- the file to use
-
PathResource
Construct a new PathResource from a Path object.- Parameters:
path- the path to use
-
PathResource
Construct a new PathResource from a URI object.Must be an absolute URI using the
filescheme.- Parameters:
uri- the URI to build this PathResource from.- Throws:
IOException- if unable to construct the PathResource from the URI.
-
PathResource
Create a new PathResource from a provided URL object.An invocation of this convenience constructor of the form.
new PathResource(url);
behaves in exactly the same way as the expression
new PathResource(url.toURI());
- Parameters:
url- the url to attempt to create PathResource from- Throws:
IOException- if URL doesn't point to a location that can be transformed to a PathResourceURISyntaxException- if the provided URL was malformed
-
-
Method Details
-
isSameName
Test if the paths are the same name.If the real path is not the same as the absolute path then we know that the real path is the alias for the provided path.
For OS's that are case insensitive, this should return the real (on-disk / case correct) version of the path.
We have to be careful on Windows and OSX.
Assume we have the following scenario:
Path a = new File("foo").toPath(); Files.createFile(a); Path b = new File("FOO").toPath();There now exists a file called
fooon disk. Using Windows or OSX, with a Path reference ofFOO,Foo,fOO, etc.. means the following| OSX | Windows | Linux -----------------------+---------+------------+--------- Files.exists(a) | True | True | True Files.exists(b) | True | True | False Files.isSameFile(a,b) | True | True | False a.equals(b) | False | True | FalseSee the javadoc for Path.equals() for details about this FileSystem behavior difference
We also cannot rely on a.compareTo(b) as this is roughly equivalent in implementation to a.equals(b)
-
isSame
Description copied from class:ResourceReturn true if the passed Resource represents the same resource as the Resource. For many resource types, this is equivalent toObject.equals(Object), however for resources types that support aliasing, this maybe some other check (e.g.Files.isSameFile(Path, Path)). -
addPath
Description copied from class:ResourceReturns the resource contained inside the current resource with the given name, which may or may not exist.- Specified by:
addPathin classResource- Parameters:
subPath- The path segment to add, which is not encoded. The path may be non canonical, but if so then the resulting Resource will return true fromResource.isAlias().- Returns:
- the Resource for the resolved path within this Resource, never null
- Throws:
IOException- if unable to resolve the pathMalformedURLException- if the resolution of the path fails because the input path parameter is malformed, or a relative path attempts to access above the root resource.
-
close
public void close()Description copied from class:ResourceRelease any temporary resources held by the resource. -
delete
Description copied from class:ResourceDeletes the given resource- Specified by:
deletein classResource- Returns:
- true if resource was found and successfully deleted, false if resource didn't exist or was unable to be deleted.
- Throws:
SecurityException- if unable to delete due to permissions
-
equals
-
exists
public boolean exists() -
getFile
Description copied from class:ResourceFile representing the given resource.- Specified by:
getFilein classResource- Returns:
- an File representing the given resource or NULL if this is not possible.
- Throws:
IOException- if unable to get the resource due to permissions
-
getPath
- Returns:
- the
Pathof the resource
-
getInputStream
Description copied from class:ResourceInput stream to the resource- Specified by:
getInputStreamin classResource- Returns:
- an input stream to the resource
- Throws:
IOException- if unable to open the input stream
-
getName
Description copied from class:ResourceThe name of the resource. -
getReadableByteChannel
Description copied from class:ResourceReadable ByteChannel for the resource.- Specified by:
getReadableByteChannelin classResource- Returns:
- an readable bytechannel to the resource or null if one is not available.
- Throws:
IOException- if unable to open the readable bytechannel for the resource.
-
newSeekableByteChannel
- Throws:
IOException
-
getURI
Description copied from class:ResourceURI representing the resource. -
hashCode
public int hashCode() -
isContainedIn
- Specified by:
isContainedInin classResource
-
isDirectory
public boolean isDirectory()- Specified by:
isDirectoryin classResource- Returns:
- true if the represented resource is a container/directory.
-
lastModified
public long lastModified()Description copied from class:ResourceTime resource was last modified.- Specified by:
lastModifiedin classResource- Returns:
- the last modified time as milliseconds since unix epoch
-
length
public long length()Description copied from class:ResourceLength of the resource. -
isAlias
public boolean isAlias() -
getAliasPath
The Alias as a Path.Note: this cannot return the alias as a DIFFERENT path in 100% of situations, due to Java's internal Path/File normalization.
- Returns:
- the alias as a path.
-
getAlias
-
list
Description copied from class:Resourcelist of resource names contained in the given resource. Ordering is unspecified, so callers may wish to sort the return value to ensure deterministic behavior. -
renameTo
Description copied from class:ResourceRename the given resource- Specified by:
renameToin classResource- Parameters:
dest- the destination name for the resource- Returns:
- true if the resource was renamed, false if the resource didn't exist or was unable to be renamed.
- Throws:
SecurityException- if unable to rename due to permissions
-
copyTo
Description copied from class:ResourceCopy the Resource to the new destination file.Will not replace existing destination file.
- Overrides:
copyToin classResource- Parameters:
destination- the destination file to create- Throws:
IOException- if unable to copy the resource
-
toString
-