Class ResourceDataSource

java.lang.Object
uk.ac.starlink.util.DataSource
uk.ac.starlink.util.ResourceDataSource

public class ResourceDataSource extends DataSource
A DataSource which represents a resource available from the class loader's ClassLoader.getResourceAsStream(java.lang.String) method.
Author:
Mark Taylor (Starlink)
  • Constructor Details

    • ResourceDataSource

      public ResourceDataSource(String resource, int introLimit)
      Constructs a new ResourceDataSource from a resource name and given size of intro buffer. Note that like ClassLoader.getResource(java.lang.String) but unlike Class.getResource(java.lang.String) the resource name is assumed absolute, and should '/'.
      Parameters:
      resource - the path of the resource represented by this DataSource
      introLimit - the intro buffer size
    • ResourceDataSource

      public ResourceDataSource(String resource)
      Constructs a new ResourceDataSource from a resource name with a default size of intro buffer. Note that like ClassLoader.getResource(java.lang.String) but unlike Class.getResource(java.lang.String) the resource name is assumed absolute, and should '/'.
      Parameters:
      resource - the path of the resource represented by this DataSource
  • Method Details

    • getRawInputStream

      public 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()
      Description copied from class: DataSource
      Returns a URL which corresponds to this data source, if one exists. An URL.openConnection() method call on the URL returned by this method should provide a stream with the same content as the DataSource.getRawInputStream() method of this data source. If no such URL exists or is known, then null should be returned.

      If this source has a non-null position value, it will be appended to the main part of the URL after a '#' character (as the URL's ref part).

      Overrides:
      getURL in class DataSource
      Returns:
      a URL corresponding to this source, or null
    • exists

      public boolean exists()
      Indicates whether this resource can be located by the class loader or not.
      Returns:
      true iff the getRawInputStream method will return an input stream
    • getClassLoader

      public ClassLoader getClassLoader()
      Returns the ClassLoader which is used for resource resolution.
      Returns:
      the class loader
    • setClassLoader

      public void setClassLoader(ClassLoader classLoader)
      Sets the ClassLoader which is used for resource resolution.
      Parameters:
      classLoader - the class loader