Package org.eclipse.jetty.util.resource
Class URLResource
- java.lang.Object
-
- org.eclipse.jetty.util.resource.Resource
-
- org.eclipse.jetty.util.resource.URLResource
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,ResourceFactory
- Direct Known Subclasses:
JarResource
public class URLResource extends Resource
URL resource class.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.net.URLConnection
_connection
protected java.io.InputStream
_in
protected java.net.URL
_url
protected java.lang.String
_urlString
-
Fields inherited from class org.eclipse.jetty.util.resource.Resource
__defaultUseCaches
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
URLResource(java.net.URL url, java.net.URLConnection connection)
protected
URLResource(java.net.URL url, java.net.URLConnection connection, boolean useCaches)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Resource
addPath(java.lang.String path)
Returns the resource contained inside the current resource with the given nameprotected boolean
checkConnection()
void
close()
Release any resources held by the resource.boolean
delete()
Deletes the given resourceboolean
equals(java.lang.Object o)
boolean
exists()
Returns true if the represented resource exists.java.io.File
getFile()
Returns an File representing the given resource or NULL if this is not possible.java.io.InputStream
getInputStream()
Returns an input stream to the resource.protected java.io.InputStream
getInputStream(boolean resetConnection)
Returns an input stream to the resource, optionally nulling out the underlying url connection.java.lang.String
getName()
Returns the name of the resourcejava.nio.channels.ReadableByteChannel
getReadableByteChannel()
Readable ByteChannel for the resource.java.net.URL
getURL()
Returns a URL representing the given resourceboolean
getUseCaches()
int
hashCode()
boolean
isContainedIn(Resource containingResource)
boolean
isDirectory()
Returns true if the represented resource is a container/directory.long
lastModified()
Returns the last modified timelong
length()
Return the length of the resourcejava.lang.String[]
list()
Returns a list of resource names contained in the given resourceboolean
renameTo(Resource dest)
Rename the given resourcejava.lang.String
toString()
-
Methods inherited from class org.eclipse.jetty.util.resource.Resource
copyTo, encode, finalize, getAlias, getAllResources, getAssociate, getDefaultUseCaches, getListHTML, getListHTML, getResource, getURI, getWeakETag, getWeakETag, isAlias, isContainedIn, isSame, newClassPathResource, newClassPathResource, newResource, newResource, newResource, newResource, newResource, newResource, newSystemResource, release, setAssociate, setDefaultUseCaches, toURL, writeTo
-
-
-
-
Method Detail
-
checkConnection
protected boolean checkConnection()
-
close
public void close()
Release any resources held by the resource.
-
exists
public boolean exists()
Returns true if the represented resource exists.
-
isDirectory
public boolean isDirectory()
Returns true if the represented resource is a container/directory. If the resource is not a file, resources ending with "/" are considered directories.- Specified by:
isDirectory
in classResource
- Returns:
- true if the represented resource is a container/directory. if the resource is not a file, resources ending with "/" are considered directories.
-
lastModified
public long lastModified()
Returns the last modified time- Specified by:
lastModified
in classResource
- Returns:
- the last modified time as milliseconds since unix epoch
-
length
public long length()
Return the length of the resource
-
getURL
public java.net.URL getURL()
Returns a URL representing the given resource
-
getFile
public java.io.File getFile() throws java.io.IOException
Returns an File representing the given resource or NULL if this is not possible.
-
getName
public java.lang.String getName()
Returns the name of the resource
-
getInputStream
public java.io.InputStream getInputStream() throws java.io.IOException
Returns an input stream to the resource. The underlying url connection will be nulled out to prevent re-use.- Specified by:
getInputStream
in classResource
- Returns:
- an input stream to the resource
- Throws:
java.io.IOException
- if unable to open the input stream
-
getInputStream
protected java.io.InputStream getInputStream(boolean resetConnection) throws java.io.IOException
Returns an input stream to the resource, optionally nulling out the underlying url connection. If the connection is not nulled out, a subsequent call to getInputStream() may return an existing and already in-use input stream - this depends on the url protocol. Eg JarURLConnection does not reuse inputstreams.- Parameters:
resetConnection
- if true the connection field is set to null- Returns:
- the inputstream for this resource
- Throws:
java.io.IOException
- if unable to open the input stream
-
getReadableByteChannel
public java.nio.channels.ReadableByteChannel getReadableByteChannel() throws java.io.IOException
Description copied from class:Resource
Readable ByteChannel for the resource.- Specified by:
getReadableByteChannel
in classResource
- Returns:
- an readable bytechannel to the resource or null if one is not available.
- Throws:
java.io.IOException
- if unable to open the readable bytechannel for the resource.
-
delete
public boolean delete() throws java.lang.SecurityException
Deletes the given resource
-
renameTo
public boolean renameTo(Resource dest) throws java.lang.SecurityException
Rename the given resource
-
list
public java.lang.String[] list()
Returns a list of resource names contained in the given resource
-
addPath
public Resource addPath(java.lang.String path) throws java.io.IOException
Returns the resource contained inside the current resource with the given name- Specified by:
addPath
in classResource
- Parameters:
path
- 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.
- Throws:
java.io.IOException
- if unable to resolve the pathjava.net.MalformedURLException
- 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.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
getUseCaches
public boolean getUseCaches()
-
isContainedIn
public boolean isContainedIn(Resource containingResource) throws java.net.MalformedURLException
- Specified by:
isContainedIn
in classResource
- Throws:
java.net.MalformedURLException
-
-