org.apache.tools.ant.types.resources

## Class URLResource

- 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.URLResource

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

      public class URLResource
      extends Resource
      implements URLProvider

  Exposes a URL as a Resource.
  Since:
    Ant 1.7

- - ### 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 and Description
    `URLResource()` Default constructor.
    `URLResource(java.io.File f)` Convenience constructor.
    `URLResource(java.lang.String u)` String constructor for Ant attribute introspection.
    `URLResource(java.net.URL u)` Convenience constructor.
    `URLResource(URLProvider u)` Convenience constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `connect()` Ensure that we have a connection.
    `protected void` | `connect(int logLevel)` Ensure that we have a connection.
    `boolean` | `equals(java.lang.Object another)` Test whether an Object equals this URLResource.
    `java.io.InputStream` | `getInputStream()` Get an InputStream for the Resource.
    `long` | `getLastModified()` Tells the modification time in milliseconds since 01.01.1970 .
    `java.lang.String` | `getName()` Get the name of this URLResource (its file component minus the leading separator).
    `java.io.OutputStream` | `getOutputStream()` Get an OutputStream for the Resource.
    `long` | `getSize()` Get the size of this Resource.
    `java.net.URL` | `getURL()` Get the URL used by this URLResource.
    `int` | `hashCode()` Get the hash code for this Resource.
    `boolean` | `isDirectory()` Tells if the resource is a directory.
    `boolean` | `isExists()` Find out whether the URL exists .
    `void` | `setBaseURL(java.net.URL base)` Base URL which combined with the relativePath attribute defines the URL.
    `void` | `setFile(java.io.File f)` Set the URL from a File.
    `void` | `setRefid(Reference r)` Overrides the super version.
    `void` | `setRelativePath(java.lang.String r)` Relative path which combined with the baseURL attribute defines the URL.
    `void` | `setURL(java.net.URL u)` Set the URL for this URLResource.
    `java.lang.String` | `toString()` Return this URLResource formatted as a String.

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

      `as, asOptional, clone, compareTo, getCheckedRef, getMagicNumber, isFilesystemOnly, iterator, setDirectory, setExists, setLastModified, setName, setSize, size, toLongString`

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

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, 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 org.apache.tools.ant.types.ResourceCollection

      `isEmpty, stream`

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

      `forEach, spliterator`

- - ### Constructor Detail

    - #### URLResource

          public URLResource()

      Default constructor.

    - #### URLResource

          public URLResource(java.net.URL u)

      Convenience constructor.
      Parameters:
        `u` - the URL to expose.

    - #### URLResource

          public URLResource(URLProvider u)

      Convenience constructor.
      Parameters:
        `u` - holds the URL to expose.

    - #### URLResource

          public URLResource(java.io.File f)

      Convenience constructor.
      Parameters:
        `f` - the File to set as a URL.

    - #### URLResource

          public URLResource(java.lang.String u)

      String constructor for Ant attribute introspection.
      Parameters:
        `u` - String representation of this URL.
      See Also:
        `IntrospectionHelper`

  - ### Method Detail

    - #### setURL

          public void setURL(java.net.URL u)

      Set the URL for this URLResource.
      Parameters:
        `u` - the URL to expose.

    - #### setFile

          public void setFile(java.io.File f)

      Set the URL from a File.
      Parameters:
        `f` - the File to set as a URL.

    - #### setBaseURL

          public void setBaseURL(java.net.URL base)

      Base URL which combined with the relativePath attribute defines the URL.
      Parameters:
        `base` - URL
      Since:
        Ant 1.8.0

    - #### setRelativePath

          public void setRelativePath(java.lang.String r)

      Relative path which combined with the baseURL attribute defines the URL.
      Parameters:
        `r` - String
      Since:
        Ant 1.8.0

    - #### getURL

          public java.net.URL getURL()

      Get the URL used by this URLResource.
      Specified by:
        `getURL` in interface `URLProvider`
      Returns:
        a URL object.

    - #### setRefid

          public void setRefid(Reference r)

      Overrides the super version.
      Overrides:
        `setRefid` in class `Resource`
      Parameters:
        `r` - the Reference to set.

    - #### getName

          public java.lang.String getName()

      Get the name of this URLResource (its file component minus the leading separator).
      Overrides:
        `getName` in class `Resource`
      Returns:
        the name of this resource.

    - #### toString

          public java.lang.String toString()

      Return this URLResource formatted as a String.
      Overrides:
        `toString` in class `Resource`
      Returns:
        a String representation of this URLResource.

    - #### isExists

          public boolean isExists()

      Find out whether the URL exists .
      Overrides:
        `isExists` in class `Resource`
      Returns:
        true if this resource exists.

    - #### getLastModified

          public long getLastModified()

      Tells the modification time in milliseconds since 01.01.1970 .
      Overrides:
        `getLastModified` in class `Resource`
      Returns:
        0 if the resource does not exist to mirror the behavior of `File`.

    - #### isDirectory

          public boolean isDirectory()

      Tells if the resource is a directory.
      Overrides:
        `isDirectory` in class `Resource`
      Returns:
        boolean whether the resource is a directory.

    - #### getSize

          public long getSize()

      Get the size of this Resource.
      Overrides:
        `getSize` in class `Resource`
      Returns:
        the size, as a long, 0 if the Resource does not exist (for compatibility with java.io.File), or UNKNOWN_SIZE if not known.

    - #### equals

          public boolean equals(java.lang.Object another)

      Test whether an Object equals this URLResource.
      Overrides:
        `equals` in class `Resource`
      Parameters:
        `another` - the other Object to compare.
      Returns:
        true if the specified Object is equal to this Resource.

    - #### hashCode

          public int hashCode()

      Get the hash code for this Resource.
      Overrides:
        `hashCode` in class `Resource`
      Returns:
        hash code as int.

    - #### getInputStream

          public java.io.InputStream getInputStream()
                                             throws java.io.IOException

      Get an InputStream for the Resource.
      Overrides:
        `getInputStream` in class `Resource`
      Returns:
        an InputStream containing this Resource's content.
      Throws:
        `java.io.IOException` - if unable to provide the content of this Resource as a stream.
        `java.lang.UnsupportedOperationException` - if InputStreams are not supported for this Resource type.

    - #### getOutputStream

          public java.io.OutputStream getOutputStream()
                                               throws java.io.IOException

      Get an OutputStream for the Resource.
      Overrides:
        `getOutputStream` in class `Resource`
      Returns:
        an OutputStream to which content can be written.
      Throws:
        `java.io.IOException` - if unable to provide the content of this Resource as a stream.
        `java.lang.UnsupportedOperationException` - if OutputStreams are not supported for this Resource type.
        `java.io.IOException` - if the URL cannot be opened.

    - #### connect

          protected void connect()
                          throws java.io.IOException

      Ensure that we have a connection.
      Throws:
        `java.io.IOException` - if the connection cannot be established.

    - #### connect

          protected void connect(int logLevel)
                          throws java.io.IOException

      Ensure that we have a connection.
      Parameters:
        `logLevel` - severity to use when logging connection errors. Should be one of the `MSG_` constants in `Project`.
      Throws:
        `java.io.IOException` - if the connection cannot be established.
      Since:
        Ant 1.8.2