public class NDFNdxHandler extends Object implements NdxHandler, HdxDocumentFactory
URLs are given in the format:
    container.sdf
 
 or
 
    container.sdf#path
 
 where 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| Modifier and Type | Method and Description | 
|---|---|
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. 
 | 
public static NDFNdxHandler getInstance()
LinkageError - if the JNIHDS package is not availablepublic Ndx makeNdx(URL url, AccessMode mode) throws IOException
makeNdx in interface NdxHandlerurl - the location of the HDS objectmode - the read/write/update mode for data accessIOException - 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 datahobj, or null 
          if it doesn't look like an NDFHDSException - if there is an error in HDSIllegalArgumentException - 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 NdxHandlerurl - 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
                    createdurl,
          false if it doesn't understand this URLIOException - if the URL is understood but an NDArray cannot
                       be madepublic boolean outputNdx(URL url, Ndx orig) throws IOException
NdxHandlerThe 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 NdxHandlerurl - 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 urlIOException - if an error occurred during the resource 
                       creation or data copyingpublic Document makeHdxDocument(URL url) throws HdxException
HdxDocumentFactorymakeHdxDocument in interface HdxDocumentFactoryHdxException - 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.HdxResourceTypepublic Source makeHdxSource(URL url) throws HdxException
HdxDocumentFactorymakeHdxSource in interface HdxDocumentFactoryHdxException - 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.Copyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.