|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuk.ac.starlink.hds.NDFNdxHandler
public class NDFNdxHandler
Turns URLs which reference NDF structures into Ndx objects.
URLs are given in the format:
container.sdfor
container.sdf#pathwhere the container.sdf part is a full absolute or relative URL referring to the HDS container file, and the optional fragment identifier gives the HDS path within that container file in the traditional dot-separated format. If there is no fragment identifier (no #), the object at the top level of the HDS container file is understood.
This is a singleton class; use getInstance()
to get an instance.
HDSReference
Method Summary | |
---|---|
static NDFNdxHandler |
getInstance()
Returns an NDFNdxHandler. |
boolean |
makeBlankNdx(URL url,
Ndx template)
Constructs a new Ndx containing writable and uninitialised array components at the given URL with characteristics matching those of a given template Ndx. |
Document |
makeHdxDocument(URL url)
Obtains a Document representing the data referred to by the URL. |
Source |
makeHdxSource(URL url)
Obtains a Source which can produce the data referred to by the URL. |
Ndx |
makeNdx(HDSObject hobj,
URL persistentURL,
AccessMode mode)
Constructs an Ndx based on an existing HDS object. |
Ndx |
makeNdx(URL url,
AccessMode mode)
Creates an NDX with the given mode from a URL referening an HDS file. |
boolean |
outputNdx(URL url,
Ndx orig)
Constructs a new Ndx which is a copy of the given Ndx at a location determined by a given URL. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static NDFNdxHandler getInstance()
LinkageError
- if the JNIHDS package is not availablepublic Ndx makeNdx(URL url, AccessMode mode) throws IOException
makeNdx
in interface NdxHandler
url
- the location of the HDS objectmode
- the read/write/update mode for data access
IOException
- if the URL is understood but an Ndx cannot
be madepublic Ndx makeNdx(HDSObject hobj, URL persistentURL, AccessMode mode) throws HDSException
hobj
- the HDS object to be viewed as an NdxpersistentURL
- the URL at which this NDX persists.
Use null if hobj resides in a temporary file
or is otherwise transient.mode
- the read/write/update mode for the Ndx array data
HDSException
- if there is an error in HDS
IllegalArgumentException
- if hobj doesn't look like
and NDF structurepublic boolean makeBlankNdx(URL url, Ndx template) throws IOException
NdxHandler
If the URL is not recognised by this handler or it is not known how to construct such an Ndx then false should be returned. If the handler recognises the URL but some error occurs in creating the new Ndx, then an IOException should be thrown; however, if it is possible that a different handler could correctly construct a writable Ndx as requested then a false return is preferred.
makeBlankNdx
in interface NdxHandler
url
- a URL at which the new NDX should be writtentemplate
- a template Ndx object from which non-array data
should be initialised - all scalar components
will be copied from it, and new blank writable
array components matching the ones in it will be
created
IOException
- if the URL is understood but an NDArray cannot
be madepublic boolean outputNdx(URL url, Ndx orig) throws IOException
NdxHandler
The return status indicates whether such a resource was successfully created. If the URL is not recognised or this factory does not feel qualified to construct an Ndx with the given URL then it must return false. If some error occurs during construction then an IOException should in general be thrown; however if this factory thinks that another factory might have more luck then a false return is preferred.
outputNdx
in interface NdxHandler
url
- the URL at which the resource backing the Ndx is
to be writtenorig
- an Ndx whose data is to be copied to the resource
given by url
IOException
- if an error occurred during the resource
creation or data copyingpublic Document makeHdxDocument(URL url) throws HdxException
HdxDocumentFactory
makeHdxDocument
in interface HdxDocumentFactory
HdxException
- if we ought to be able to read this type
of URL, but processing fails for some reason. That is, do not
simply fail silently in this situation.HdxResourceType
public Source makeHdxSource(URL url) throws HdxException
HdxDocumentFactory
makeHdxSource
in interface HdxDocumentFactory
HdxException
- if we ought to be able to read this type
of URL, but processing fails for some reason. That is, do not
simply fail silently in this situation.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |