uk.ac.starlink.util
Class TemporaryFileDataSource

java.lang.Object
  |
  +--uk.ac.starlink.util.DataSource
        |
        +--uk.ac.starlink.util.FileDataSource
              |
              +--uk.ac.starlink.util.TemporaryFileDataSource

public class TemporaryFileDataSource
extends FileDataSource

A DataSource which stores its data in a temporary file. This can be used to represent data which is only available to read once from an intput stream. The stream is read when this source is constructed, and cached in a temporary file. The temporary file is removed when this object is finalized or when the VM is terminated normally.


Field Summary
 
Fields inherited from class uk.ac.starlink.util.DataSource
DEFAULT_INTRO_LIMIT
 
Constructor Summary
TemporaryFileDataSource(InputStream baseStream, String name)
          Constructs a new DataSource by reading the contents of an input stream.
TemporaryFileDataSource(InputStream baseStream, String name, String prefix, String suffix, File directory)
          Constructs a new DataSource by reading the contents of an input stream.
 
Method Summary
 void finalize()
          Deletes the temporary data file.
 URL getURL()
          Returns null, since the data is not represented by a persistent object.
 
Methods inherited from class uk.ac.starlink.util.FileDataSource
getFile, getRawInputStream, getRawLength
 
Methods inherited from class uk.ac.starlink.util.DataSource
close, forceCompression, getCompression, getHybridInputStream, getInputStream, getInputStream, getIntro, getIntroLimit, getLength, getName, getPosition, getSystemId, makeDataSource, makeDataSource, setCompression, setIntroLimit, setName, setPosition, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TemporaryFileDataSource

public TemporaryFileDataSource(InputStream baseStream,
                               String name)
                        throws IOException
Constructs a new DataSource by reading the contents of an input stream. The name of the source is also supplied; it does not take the name (or URL) of the file, since that does not represent a persistent object.

Parameters:
baseStream - the stream which supplies this source's data
name - the name of the source

TemporaryFileDataSource

public TemporaryFileDataSource(InputStream baseStream,
                               String name,
                               String prefix,
                               String suffix,
                               File directory)
                        throws IOException
Constructs a new DataSource by reading the contents of an input stream. The name of the source is also supplied; it does not take the name (or URL) of the file, since that does not represent a persistent object. Using this constructor you may also supply the prefix, suffix and directory used for the temporary file see File.createTempFile(String,String,File).

Parameters:
baseStream - the stream which supplies this source's data
name - the name of the source
prefix - the prefix string to be used in generating the file's name; must be at least three characters long
suffix - the suffix string to be used in generating the file's name; may be null, in which case the suffix ".tmp" will be used
directory - the directory in which the file is to be created, or null if the default temporary-file directory is to be used
Method Detail

getURL

public URL getURL()
Returns null, since the data is not represented by a persistent object.

Overrides:
getURL in class FileDataSource
Returns:
a URL corresponding to this source, or null

finalize

public void finalize()
Deletes the temporary data file.

Overrides:
finalize in class Object

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