Class URLResource

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ResourceFactory
    Direct Known Subclasses:
    JarResource

    public class URLResource
    extends Resource
    URL resource class.
    • Field Detail

      • _url

        protected final java.net.URL _url
      • _urlString

        protected final java.lang.String _urlString
      • _connection

        protected java.net.URLConnection _connection
      • _in

        protected java.io.InputStream _in
    • Constructor Detail

      • URLResource

        protected URLResource​(java.net.URL url,
                              java.net.URLConnection connection)
      • URLResource

        protected URLResource​(java.net.URL url,
                              java.net.URLConnection connection,
                              boolean useCaches)
    • Method Detail

      • checkConnection

        protected boolean checkConnection()
      • close

        public void close()
        Release any resources held by the resource.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class Resource
      • exists

        public boolean exists()
        Returns true if the represented resource exists.
        Specified by:
        exists in class Resource
        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 class Resource
        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 class Resource
        Returns:
        the last modified time as milliseconds since unix epoch
      • length

        public long length()
        Return the length of the resource
        Specified by:
        length in class Resource
        Returns:
        the length of the resource
      • getURL

        public java.net.URL getURL()
        Returns a URL representing the given resource
        Specified by:
        getURL in class Resource
        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.
        Specified by:
        getFile in class Resource
        Returns:
        an File representing the given resource or NULL if this is not possible.
        Throws:
        java.io.IOException - if unable to get the resource due to permissions
      • getName

        public java.lang.String getName()
        Returns the name of the resource
        Specified by:
        getName in class Resource
        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 class Resource
        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 class Resource
        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
        Specified by:
        delete in class Resource
        Returns:
        true if resource was found and successfully deleted, false if resource didn't exist or was unable to be deleted.
        Throws:
        java.lang.SecurityException - if unable to delete due to permissions
      • renameTo

        public boolean renameTo​(Resource dest)
                         throws java.lang.SecurityException
        Rename the given resource
        Specified by:
        renameTo in class Resource
        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:
        java.lang.SecurityException - if unable to rename due to permissions
      • list

        public java.lang.String[] list()
        Returns a list of resource names contained in the given resource
        Specified by:
        list in class Resource
        Returns:
        a list of resource names contained in the given resource, or null. Note: The resource names are not URL encoded.
      • 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 class Resource
        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 from Resource.isAlias().
        Returns:
        the Resource for the resolved path within this Resource.
        Throws:
        java.io.IOException - if unable to resolve the path
        java.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 class java.lang.Object
      • hashCode

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • getUseCaches

        public boolean getUseCaches()
      • isContainedIn

        public boolean isContainedIn​(Resource containingResource)
                              throws java.net.MalformedURLException
        Specified by:
        isContainedIn in class Resource
        Throws:
        java.net.MalformedURLException