Interface Resource

All Known Subinterfaces:
LocalizableResource
All Known Implementing Classes:
BasicResource, BuiltFileResource, FileResource, JarResource, LazyResource, SFTPResource, SshResource, URLResource, VfsResource, 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

    Modifier and Type
    Method
    Description
    clone(String cloneName)
    Clones this resource with a new resource with a different name
    boolean
    Determine if the resource is available.
    long
    Get the resource size
    long
    Get the date the resource was last modified
    Get the name of the resource.
    boolean
    Is this resource local to this host, i.e.
    Opens a stream on this resource
  • Method Details

    • getName

      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(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

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