uk.ac.starlink.util
Class ByteArrayDataSource

java.lang.Object
  extended by uk.ac.starlink.util.DataSource
      extended by uk.ac.starlink.util.ByteArrayDataSource

public class ByteArrayDataSource
extends DataSource

DataSource implementation that uses an internal byte buffer to store the data.

Since:
1 Feb 2007

Field Summary
 
Fields inherited from class uk.ac.starlink.util.DataSource
DEFAULT_INTRO_LIMIT, MARK_WORKAROUND_PROPERTY
 
Constructor Summary
ByteArrayDataSource(java.lang.String name, byte[] buffer)
          Constructor.
 
Method Summary
 java.lang.String getName()
          Returns a name for this source.
 java.io.InputStream getRawInputStream()
          Provides a new InputStream for this data source.
 long getRawLength()
          Returns the length in bytes of the stream returned by getRawInputStream, if known.
 
Methods inherited from class uk.ac.starlink.util.DataSource
close, forceCompression, getCompression, getHybridInputStream, getInputStream, getInputStream, getIntro, getIntroLimit, getLength, getMarkWorkaround, getPosition, getSystemId, getURL, 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

ByteArrayDataSource

public ByteArrayDataSource(java.lang.String name,
                           byte[] buffer)
Constructor.

Parameters:
name - data source name
buffer - containing byte content of the source
Method Detail

getName

public java.lang.String getName()
Description copied from class: DataSource
Returns a name for this source. This name is mainly intended as a label identifying the source for use in informational messages; it is not in general intended to be used to provide an absolute reference to the source. Thus, for instance, if the source references a file, its name might be a relative pathname or simple filename, rather than its absolute pathname. To identify the source absolutely, the DataSource.getURL() method (or some suitable class-specific method) should be used. If this source has a position, it should probably form part of this name.

Overrides:
getName in class DataSource
Returns:
a name

getRawInputStream

public java.io.InputStream getRawInputStream()
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

getRawLength

public long getRawLength()
Description copied from class: DataSource
Returns the length in bytes of the stream returned by getRawInputStream, if known. If the length is not known then -1 should be returned. The implementation of this method in DataSource returns -1; subclasses should override it if they can determine their length.

Overrides:
getRawLength in class DataSource
Returns:
the length of the raw input stream, or -1

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.