Interface Resource

  • All Known Subinterfaces:
    LocalizableResource
    All Known Implementing Classes:
    BasicResource, BuiltFileResource, FileResource, JarResource, LazyResource, URLResource, VsftpResource

    public interface Resource
    Represents a resource in an Ivy Repository. The resource interface allows one to obtain the following information about a resource:
    • resource name/identifier in repository syntax
    • date the resource was last modified.
    • size of the resource in bytes.
    • if the resource is available.

    Implementation Notes

    In implementing the interface you need to ensure the following behaviors:
    • All of the methods specified in the interface fail by returning an empty value (false, 0, ""). In other words, the specified interface methods should not throw RuntimeExceptions.
    • Failure conditions should be logged using the Message.verbose(java.lang.String) method.
    • Failure of one of the interface's specified methods results in all other interface specified methods returning an empty value (false, 0, "").
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      Resource clone​(java.lang.String cloneName)
      Clones this resource with a new resource with a different name
      boolean exists()
      Determine if the resource is available.
      long getContentLength()
      Get the resource size
      long getLastModified()
      Get the date the resource was last modified
      java.lang.String getName()
      Get the name of the resource.
      boolean isLocal()
      Is this resource local to this host, i.e.
      java.io.InputStream openStream()
      Opens a stream on this resource
    • Method Detail

      • getName

        java.lang.String getName()
        Get the name of the resource.
        Returns:
        the repository's assigned resource name/identifier.
      • getLastModified

        long getLastModified()
        Get the date the resource was last modified
        Returns:
        A long value representing the time the file was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if the file does not exist or if an I/O error occurs.
      • getContentLength

        long getContentLength()
        Get the resource size
        Returns:
        a long value representing the size of the resource in bytes.
      • exists

        boolean exists()
        Determine if the resource is available. Note that this method only checks for availability, not for actual existence.
        Returns:
        boolean value indicating if the resource is available.
      • isLocal

        boolean isLocal()
        Is this resource local to this host, i.e. is it on the file system?
        Returns:
        boolean value indicating if the resource is local.
      • clone

        Resource clone​(java.lang.String cloneName)
        Clones this resource with a new resource with a different name
        Parameters:
        cloneName - the name of the clone
        Returns:
        the cloned resource
      • openStream

        java.io.InputStream openStream()
                                throws java.io.IOException
        Opens a stream on this resource
        Returns:
        the opened input stream
        Throws:
        java.io.IOException - if something goes wrong