Package org.apache.tools.ant.types.resources

## Class JavaResource

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.Resource
      - - org.apache.tools.ant.types.resources.AbstractClasspathResource
        - - org.apache.tools.ant.types.resources.JavaResource

- All Implemented Interfaces:
    `java.lang.Cloneable`, `java.lang.Comparable<Resource>`, `java.lang.Iterable<Resource>`, `ResourceCollection`, `URLProvider`

      public class JavaResource
      extends AbstractClasspathResource
      implements URLProvider

  A Resource representation of something loadable via a Java classloader.
  Since:
    Ant 1.7

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.tools.ant.types.resources.AbstractClasspathResource

      `AbstractClasspathResource.ClassLoaderWithFlag`

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.types.Resource

      `MAGIC, UNKNOWN_DATETIME, UNKNOWN_SIZE`

    - ### Fields inherited from class org.apache.tools.ant.types.DataType

      `checked, ref`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JavaResource()` | Default constructor.
    `JavaResource​(java.lang.String name, Path path)` | Construct a new JavaResource using the specified name and classpath.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `compareTo​(Resource another)` | Compare this JavaResource to another Resource.
    `protected JavaResource` | `getRef()` | Perform the check for circular references and return the referenced Resource.
    `java.net.URL` | `getURL()` | Get the URL represented by this Resource.
    `protected java.io.InputStream` | `openInputStream​(java.lang.ClassLoader cl)` | open the input stream from a specific classloader

    - ### Methods inherited from class org.apache.tools.ant.types.resources.AbstractClasspathResource

      `createClasspath, dieOnCircularReference, getClassLoader, getClasspath, getInputStream, getLoader, isExists, setClasspath, setClasspathRef, setLoaderRef, setParentFirst, setRefid`

    - ### Methods inherited from class org.apache.tools.ant.types.Resource

      `as, asOptional, clone, equals, getLastModified, getMagicNumber, getName, getOutputStream, getSize, hashCode, isDirectory, isFilesystemOnly, iterator, setDirectory, setExists, setLastModified, setName, setSize, size, toLongString, toString`

    - ### Methods inherited from class org.apache.tools.ant.types.DataType

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

    - ### Methods inherited from interface org.apache.tools.ant.types.ResourceCollection

      `isEmpty, stream`

- - ### Constructor Detail

    - #### JavaResource

          public JavaResource()

      Default constructor.

    - #### JavaResource

          public JavaResource​(java.lang.String name,
                              Path path)

      Construct a new JavaResource using the specified name and classpath.
      Parameters:
        `name` - the resource name.
        `path` - the classpath.

  - ### Method Detail

    - #### openInputStream

          protected java.io.InputStream openInputStream​(java.lang.ClassLoader cl)
                                                 throws java.io.IOException

      open the input stream from a specific classloader
      Specified by:
        `openInputStream` in class `AbstractClasspathResource`
      Parameters:
        `cl` - the classloader to use. Will be null if the system classloader is used
      Returns:
        an open input stream for the resource
      Throws:
        `java.io.IOException` - if an error occurs.

    - #### getURL

          public java.net.URL getURL()

      Get the URL represented by this Resource.
      Specified by:
        `getURL` in interface `URLProvider`
      Returns:
        the file.
      Since:
        Ant 1.8.0

    - #### compareTo

          public int compareTo​(Resource another)

      Compare this JavaResource to another Resource.
      Specified by:
        `compareTo` in interface `java.lang.Comparable<Resource>`
      Overrides:
        `compareTo` in class `Resource`
      Parameters:
        `another` - the other Resource against which to compare.
      Returns:
        a negative integer, zero, or a positive integer as this JavaResource is less than, equal to, or greater than the specified Resource.

    - #### getRef

          protected JavaResource getRef()

      Description copied from class: `Resource`
      Perform the check for circular references and return the referenced Resource.
      Overrides:
        `getRef` in class `AbstractClasspathResource`
      Returns:
        `Resource`.