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

Author:
  Mark Taylor (Starlink), Peter W. Draper (JAC, Durham University)

## Field Summary

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

`DEFAULT_INTRO_LIMIT, MARK_WORKAROUND_PROPERTY`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`protected InputStream`
`getRawInputStream()`
Provides a new InputStream for this data source.
`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 Details

### URLDataSource

public URLDataSource(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(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(URL url, ContentCoding coding, uk.ac.starlink.auth.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 Details

### getRawInputStream

protected InputStream getRawInputStream() throws 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:
  `IOException`

### getURL

public URL getURL()
Returns the URL on which this `URLDataSource` is based.

Overrides:
  `getURL` in class `DataSource`
Returns:
  the URL