public class HDSObject extends Object
HDSObject.
 For this reason there is no constructor, a factory method like
 hdsOpen or datFind should be used instead.
 On the whole, the implementation of this class is such that a call to one of these methods results in a call to the similarly-named routine in the HDS library. This is not always the most efficient way to procure the data requested.
 The arguments of the methods declared by this class are not identical
 with those of the corresponding Fortran HDS calls, and
 the documentation for each of the HDSObject methods
 should be checked before use.  However, the following rules in
 general apply:
 
HDSObject object represented by that locator.
     The locator itself is kept as a (private) member of the the
     HDSObject, and will never be referred to by Java
     code.
 HDSException
     is called.  The getMessage method of the HDSException
     returns the error message generated.  All methods can therefore
     throw an HDSException.
 HDSObject object.
 longs.
 Using the above rules, we see that, for instance:
    CALL DAT_FIND( LOC1, NAME, LOC2, STATUS )
 
 becomes
 
    public native HDSObject datFind( String name ) throws HDSException;
 
 Note: This class is not complete; it is being added to as calls are required.
| Modifier and Type | Field and Description | 
|---|---|
| static int | DAT__SZNAMMaximum number of characters in the name of an HDS component. | 
| static int | DAT__SZTYPmaximum number of characters in the name of an HDS type string. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | datAnnul()Annul locator. | 
| HDSObject | datCell(long[] position)Get an  HDSObjectfrom a cell (element) of an array object. | 
| HDSObject | datClone()Clone locator. | 
| void | datCopy(HDSObject hdsobj,
       String name)Recursively copy an object into a component. | 
| void | datErase(String name)Erase component. | 
| HDSObject | datFind(String name)Find named component. | 
| String | datGet0c()Read scalar primitive as  Stringtype. | 
| double | datGet0d()Read scalar primitive as  doubletype. | 
| int | datGet0i()Read scalar primitive as  inttype. | 
| boolean | datGet0l()Read scalar primitive as  booleantype. | 
| float | datGet0r()Read scalar primitive as  floattype. | 
| Object | datGetc(long[] shape)Read a primitive as  Stringtype. | 
| Object | datGetd(long[] shape)Read a primitive as  doubletype. | 
| Object | datGeti(long[] shape)Read a primitive as  integertype. | 
| Object | datGetl(long[] shape)Read a primitive as  booleantype. | 
| Object | datGetr(long[] shape)Read a primitive as  floattype. | 
| String[] | datGetvc()Read a primitive as  Stringtype as if it were
 vectorised (regardless of its actual shape). | 
| double[] | datGetvd()Read a primitive as  doubletype as if it were
 vectorised (regardless of its actual shape). | 
| int[] | datGetvi()Read a primitive as  inttype as if it were
 vectorised (regardless of its actual shape). | 
| boolean[] | datGetvl()Read a primitive as  booleantype as if it were
 vectorised (regardless of its actual shape). | 
| float[] | datGetvr()Read a primitive as  floattype as if it were
 vectorised (regardless of its actual shape). | 
| HDSObject | datIndex(int index)Index into component list. | 
| Buffer | datMapv(String type,
       String mode)Map primitive. | 
| String | datName()Enquire object name. | 
| int | datNcomp()Enquire number of components. | 
| void | datNew(String name,
      String type,
      long[] dims)Create component. | 
| HDSObject | datParen()Locate parent structure. | 
| boolean | datPrmry()Enquire primary/secondary locator status. | 
| void | datPrmry(boolean primary)Set primary/secondary locator status. | 
| void | datPut0c(String value)Write scalar primitive. | 
| void | datPut0d(double value)Write scalar primitive. | 
| void | datPut0i(int value)Write scalar primitive. | 
| void | datPut0l(boolean value)Write scalar primitive. | 
| void | datPut0r(float value)Write scalar primitive. | 
| void | datPutvc(String[] value)Write a primitive as if it were vectorised (regardless of its
 actual shape). | 
| void | datPutvd(double[] value)Write a primitive as if it were vectorised (regardless of its
 actual shape). | 
| void | datPutvi(int[] value)Write a primitive as if it were vectorised (regardless of its
 actual shape). | 
| void | datPutvl(boolean[] value)Write a primitive as if it were vectorised (regardless of its
 actual shape). | 
| void | datPutvr(float[] value)Write a primitive as if it were vectorised (regardless of its
 actual shape). | 
| String | datRef()Obtain a reference for an HDSObject. | 
| long[] | datShape()Enquire object shape. | 
| long | datSize()Enquire object size. | 
| boolean | datState()Enquire object state. | 
| boolean | datStruc()Enquire whether object is a structure. | 
| boolean | datThere(String name)Enquire if a component of a structure exists. | 
| String | datType()Enquire object type. | 
| void | datUnmap()Unmap an object mapped by another  HDSObjectmethod. | 
| boolean | datValid()Enquire locator validity. | 
| protected void | finalize() | 
| static int | hdsGtune(String param)Get HDS tuning parameter value. | 
| static HDSObject | hdsNew(String file,
      String name,
      String type,
      long[] dims)Create container file. | 
| static HDSObject | hdsOpen(String container,
       String accessMode)Open container file. | 
| static void | hdsShow(String topic)Show HDS statistics. | 
| int | hdsTrace(String[] results)Trace object path. | 
| static void | hdsTune(String param,
       int value)Set HDS tuning parameter. | 
| String | toString() | 
public static final int DAT__SZNAM
public static final int DAT__SZTYP
protected void finalize()
                 throws Throwable
public static int hdsGtune(String param) throws HDSException
hdsTune(java.lang.String, int) routine).param - Name of the tuning parameterHDSException - if an HDS error occurs (STATUS is not SAI__OK)public static HDSObject hdsNew(String file, String name, String type, long[] dims) throws HDSException
file - the name of the container file to be created.  ".sdf"
               will be added an extension is not specified.name - the name of the object to be createdtype - the HDS type of the top-level object to be createddims - the dimensions of the top-level object to be createdHDSException - if an HDS error occurs (STATUS is not SAI__OK)public static HDSObject hdsOpen(String container, String accessMode) throws HDSException
container - the container file nameaccessMode - the access mode "READ", "UPDATE" or "WRITE"HDSObject representing
                        the newly opened container fileHDSException - if an HDS error occurs (STATUS is not SAI__OK)public static void hdsShow(String topic) throws HDSException
topic - name of the topic on which to supply information.
                One of "DATA", "FILES" or "LOCATORS".HDSException - if an HDS error occurs (STATUS is not SAI__OK)public int hdsTrace(String[] results) throws HDSException
results - a two-element String array.  On exit the first element
                  will be set to the object path name within the
                  container file, and the second element to the
                  container file name.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public static void hdsTune(String param, int value) throws HDSException
param - Name of the tuning parametervalue - the value of the tuning parameterHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datAnnul()
              throws HDSException
It is not generally necessary for client code to call this method (though it is permissible), since it is called by the finalizer method. The garbage collector can therefore be relied upon to annul resources which are associated with unreferenced HDSObjects in due course. Note however that there is no guarantee when (or if) garbage collection will be performed, so side-effects of datAnnul, such as the unmapping of mapped data, must be invoked explicitly rather than leaving them to get done when the automatic annul is done.
HDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datCell(long[] position) throws HDSException
HDSObject from a cell (element) of an array object.position - the location within the array of the cell to
                        retreiveHDSObject representing the
                        indicated element of the arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datClone() throws HDSException
HDSObject referring to the same
                        object as this HDSObject except
                        that the locator will always be secondaryHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datCopy(HDSObject hdsobj, String name) throws HDSException
hdsobj - destination objectname - component name in destination objectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datErase(String name) throws HDSException
name - the name of the component within this
                        HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datFind(String name) throws HDSException
name - the name of the component within this
                        HDSObjectHDSObject representing the
                        named componentHDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetc(long[] shape) throws HDSException
String type.shape - an array giving the shape of
                       the HDS primitiveObject giving the contents of
                       this primitive HDSObject.  If this object
                       represents an HDS array primitive, the return
                       value is an array, or
                       array of arrays, or ... of Strings,
                       according to the dimensionality of the primitive.
                       If this object is a scalar primitive
                       (shape has dimensionality of zero)
                       it will be the scalar value as a
                       String.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetl(long[] shape) throws HDSException
boolean type.shape - an array giving the shape of
                        the HDS primitiveObject giving the contents of
                        this primitive HDSObject.  If this object
                        represents an HDS array primitive,
                        the return value is an array, or
                        array of arrays, or ... of booleans,
                        according to the dimensionality of the primitive.
                        If this object is a scalar primitive
                        (shape has dimensionality of zero)
                        it will be an Boolean wrapping the
                        value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGeti(long[] shape) throws HDSException
integer type.shape - an array giving the shape of
                        the HDS primitive to returnObject giving the contents of
                        this primitive HDSObject.  If this object
                        represents an HDS array primitive,
                        the return value is an array, or
                        array of arrays, or ... of ints,
                        according to the dimensionality of the primitive.
                        If this object is a scalar primitive
                        (shape has dimensionality of zero)
                        it will be an Integer wrapping the
                        value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetr(long[] shape) throws HDSException
float type.shape - an array giving the shape of
                        the HDS primitive to returnObject giving the contents of
                        this primitive HDSObject.  If this object
                        represents an HDS array primitive,
                        the return value is an array, or
                        array of arrays, or ... of floats,
                        according to the dimensionality of the primitive.
                        If this object is a scalar primitive
                        (shape has dimensionality of zero)
                        it will be an Float wrapping the
                        value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetd(long[] shape) throws HDSException
double type.shape - an array giving the shape of
                        the HDS primitive to returnObject giving the contents of
                        this primitive HDSObject.  If this object
                        represents an HDS array primitive,
                        the return value is an array, or
                        array of arrays, or ... of doubles,
                        according to the dimensionality of the primitive.
                        If this object is a scalar primitive
                        (shape has dimensionality of zero)
                        it will be an Double wrapping the
                        value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public String[] datGetvc() throws HDSException
String type as if it were
 vectorised (regardless of its actual shape).
 The length of the returned array will be the size of the entire array
 of this object (note: one element for each array element, not for
 each character).  Trailing blanks in the strings will be trimmed so
 strings may be smaller than their declared size.  This method cannot
 be used to read arrays with more than Integer.MAX_VALUE
 elements.Strings,
                        one for each element in the primitive array.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean[] datGetvl()
                   throws HDSException
boolean type as if it were
 vectorised (regardless of its actual shape).
 The length of the returned array will be the size of the entire
 array of this object.  This method cannot be used to read arrays
 with more than Integer.MAX_VALUE elements.booleans
                        containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public int[] datGetvi()
               throws HDSException
int type as if it were
 vectorised (regardless of its actual shape).
 The length of the returned array will be the size of the entire
 array of this object.  This method cannot be used to read arrays
 with more than Integer.MAX_VALUE elements.ints
                        containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public float[] datGetvr()
                 throws HDSException
float type as if it were
 vectorised (regardless of its actual shape).
 The length of the returned array will be the size of the entire
 array of this object.  This method cannot be used to read arrays
 with more than Integer.MAX_VALUE elements.floats
                        containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public double[] datGetvd()
                  throws HDSException
doubletype as if it were
 vectorised (regardless of its actual shape).
 The length of the returned array will be the size of the entire
 array of this object.  This method cannot be used to read arrays
 with more than Integer.MAX_VALUE elements.doubles
                        containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public String datGet0c() throws HDSException
String type.
 As with the underlying HDS routine, this may be used to return a
 representation of a scalar value of any type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean datGet0l()
                 throws HDSException
boolean type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public int datGet0i()
             throws HDSException
int type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public float datGet0r()
               throws HDSException
float type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public double datGet0d()
                throws HDSException
double type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datIndex(int index) throws HDSException
index - position in list of component to returnHDSObject representing the
                        index'th component of this
                        HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public Buffer datMapv(String type, String mode) throws HDSException
Buffer of a type determined
 by the type parameter.  Note that the unsigned HDS types (_UWORD and
 _UBYTE) are not currently supported (an IllegalArgumentException
 will be thrown).type - an HDS type string giving the type with which to map
               the array; one of "_BYTE", "_WORD", "_INTEGER", "_REAL",
               "_DOUBLE".mode - a string indicating access mode; one of "READ",
               "WRITE", "UPDATE".HDSException - if an HDS error occurs (STATUS is not SAI__OK)UnsupportedOperationException - if the JNI implementation
           does not support mapping of a direct bufferpublic String datName() throws HDSException
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public int datNcomp()
             throws HDSException
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datNew(String name, String type, long[] dims) throws HDSException
name - the name of the new component.type - the type of the new component - if it matches one of the
               primitive types a primitive is created, otherwise it
               is assumed to be a structuredims - component dimensionsHDSException - if an HDS error occurs (STATUS is not SAI__OK) -
                        in particular if the named componene already
                        exists in this HDSObjectpublic HDSObject datParen() throws HDSException
HDSException - if an HDS error occurs (STATUS is not SAI__OK) -
                        in particular if the object has no parent
                        because it is at the top level in an HDS
                        container file.public boolean datPrmry()
                 throws HDSException
datPrmry method
 to handle the distinct get/set semantics of the underlying routine.true if the locator of this HDSObject
          is primary, false if it is secondaryHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPrmry(boolean primary)
              throws HDSException
datPrmry method
 to handle the distinct get/set semantics of the underlying routine.primary - true to set the locator of this
                        HDSObject to primary, or
                        false to set it to secondaryHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0c(String value) throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0l(boolean value)
              throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0i(int value)
              throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0r(float value)
              throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0d(double value)
              throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvc(String[] value) throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
                Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvl(boolean[] value)
              throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
                Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvi(int[] value)
              throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
                Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvr(float[] value)
              throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
                Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvd(double[] value)
              throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
                Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public String datRef() throws HDSException
HDSExceptionpublic long[] datShape()
                throws HDSException
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public long datSize()
             throws HDSException
HDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean datState()
                 throws HDSException
HDSExceptionpublic boolean datStruc()
                 throws HDSException
true if this object is a structure,
                        otherwise falseHDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean datThere(String name) throws HDSException
name - the name of a component whose existence is
                        to be queriedtrue if a component called
                        name is
                        contained in this object, otherwise
                        falseHDSException - if an HDS error occurs (STATUS is not SAI__OK)public String datType() throws HDSException
String giving one of the
                        following HDS type strings:
                        HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datUnmap()
              throws HDSException
HDSObject method.HDSExceptionpublic boolean datValid()
                 throws HDSException
true if this HDSobject
                        refers to a valid HDS object, false
                        otherwise.  It should normally be true unless
                        the datAnnul method has been
                        called on it.HDSException - if an HDS error occurs (STATUS is not SAI__OK)Copyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.