## org.apache.ivy.plugins.repository
Interface Resource

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
`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. is it on the file system?
`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 repositorie'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`