uk.ac.starlink.util

## Class URLDataSource

- java.lang.Object
- - uk.ac.starlink.util.DataSource
  - - uk.ac.starlink.util.URLDataSource

-     public class URLDataSource
      extends DataSource

  A DataSource implementation based on a `URL`.

  This uses an `AuthManager` to manage authentication and redirects.

- - ### Field Summary

    - ### Fields inherited from class uk.ac.starlink.util.DataSource

      `DEFAULT_INTRO_LIMIT, MARK_WORKAROUND_PROPERTY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `URLDataSource(java.net.URL url)` Constructs a DataSource from a URL with default content coding and AuthManager.
    `URLDataSource(java.net.URL url, ContentCoding coding)` Constructs a DataSource from a URL with given content coding policy.
    `URLDataSource(java.net.URL url, ContentCoding coding, AuthManager authManager)` Constructs a DataSource from a URL with given content coding policy and AuthManager.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.io.InputStream` | `getRawInputStream()` Provides a new InputStream for this data source.
    `java.net.URL` | `getURL()` Returns the URL on which this `URLDataSource` is based.

    - ### Methods inherited from class uk.ac.starlink.util.DataSource

      `close, forceCompression, getCompression, getHybridInputStream, getInputStream, getInputStream, getIntro, getIntroLimit, getLength, getMarkWorkaround, getName, getPosition, getRawLength, getSystemId, makeDataSource, makeDataSource, makeDataSource, setCompression, setIntroLimit, setMarkWorkaround, setName, setPosition, toString`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### URLDataSource

          public URLDataSource(java.net.URL url)

      Constructs a DataSource from a URL with default content coding and AuthManager. If the URL has a ref part (the bit after the '#') it will be treated as the position attribute of this DataSource.
      Parameters:
        `url` - URL

    - #### URLDataSource

          public URLDataSource(java.net.URL url,
                               ContentCoding coding)

      Constructs a DataSource from a URL with given content coding policy. If the URL has a ref part (the bit after the '#') it will be treated as the position attribute of this DataSource.
      Parameters:
        `url` - URL
        `coding` - configures HTTP compression; may be overridden if inapplicable or security concerns apply

    - #### URLDataSource

          public URLDataSource(java.net.URL url,
                               ContentCoding coding,
                               AuthManager authManager)

      Constructs a DataSource from a URL with given content coding policy and AuthManager. If the URL has a ref part (the bit after the '#') it will be treated as the position attribute of this DataSource.
      Parameters:
        `url` - URL
        `coding` - configures HTTP compression; may be overridden if inapplicable or security concerns apply
        `authManager` - authentication manager

  - ### Method Detail

    - #### getRawInputStream

          protected java.io.InputStream getRawInputStream()
                                                   throws java.io.IOException

      Description copied from class: `DataSource`
      Provides a new InputStream for this data source. This method should be implemented by subclasses to provide a new InputStream giving the raw content of the source each time it is called. The general contract of this method is that each time it is called it will return a stream with the same content.
      Specified by:
        `getRawInputStream` in class `DataSource`
      Returns:
        an InputStream containing the data of this source
      Throws:
        `java.io.IOException`

    - #### getURL

          public java.net.URL getURL()

      Returns the URL on which this `URLDataSource` is based.
      Overrides:
        `getURL` in class `DataSource`
      Returns:
        the URL