# Interface NeXusFileInterface

All Known Implementing Classes:
  `NexusFile`

public interface NeXusFileInterface

## Method Summary

Modifier and Type
Method
Description
`Hashtable`
`attrdir()`
attrdir returns the attributes of the currently open dataset or the file global attributes if no dataset is open.
`void`
`close()`
close the NeXus file.
`void`
`closedata()`
closedata closes an opened dataset.
`void`
`closegroup()`
closegroup closes access to the current group and steps down one step in group hierarchy.
`void`
`compmakedata(String name, int type, int rank, int[] dim, int compression_type, int[] iChunk)`
compmakedata creates a new dataset with the specified characteristics in the current group.
`void`
`compmakedata(String name, int type, int rank, long[] dim, int compression_type, long[] iChunk)`
compmakedata creates a new dataset with the specified characteristics in the current group.
`void`
`compress(int compression_type)`
causes the currently open dataset to be compressed on file.
`void`
`finalize()`
finalize closes the file.
`void`
`flush()`
flush writes all previously unsaved data to disk.
`Object`
`getattr(String name)`
getattr retrieves the data associated with the attribute * name.
`void`
`getattr(String name, Object data, int[] args)`
getattr retrieves the data associated with the attribute name.
`void`
`getdata(Object array)`
getdata reads the data from an previously openend dataset into array.
`NXlink`
`getdataID()`
getdataID gets the data necessary for linking the current dataset somewhere else.
`NXlink`
`getgroupID()`
getgroupID gets the data necessary for linking the current vGroup somewhere else.
`void`
`getinfo(int[] iDim, int[] args)`
getinfo retrieves information about a previously opened dataset.
`void`
`getinfo(long[] iDim, int[] args)`
getinfo retrieves information about a previously opened dataset.
`String`
`getpath()`
return the current path into the NeXus file in the form of a Unix path string.
`void`
`getslab(int[] start, int[] size, Object array)`
getslab reads a subset of a large dataset into array.
`void`
`getslab(long[] start, long[] size, Object array)`
getslab reads a subset of a large dataset into array.
`Hashtable`
`groupdir()`
groupdir will retrieve the content of the currently open vGroup.
`String`
`inquirefile()`
inquirefile inquires which file we are currently in.
`String`
`isexternaldataset(String name)`
nxisexternaldataset if the named dataset is is linked externally
`String`
`isexternalgroup(String name, String nxclass)`
nxisexternalgroup test the group name, nxclass if it is linked externally
`void`
`linkexternal(String name, String nxclass, String nxurl)`
linkexternal links group name, nxclass to the URL nxurl
`void`
`linkexternaldataset(String name, String nxurl)`
linkexternaldataset links dataset name to the URL nxurl
`void`
`makedata(String name, int type, int rank, int[] dim)`
makedata creates a new dataset with the specified characteristics in the current group.
`void`
`makedata(String name, int type, int rank, long[] dim)`
makedata creates a new dataset with the specified characteristics in the current group.
`void`
`makegroup(String name, String nxclass)`
makegroup creates a new group below the current group within the NeXus file hierarchy.
`void`
`makelink(NXlink target)`
makelink links the object described by target into the current vGroup.
`void`
`makenamedlink(String name, NXlink target)`
makenamedlink links the object described by target into the current vGroup.
`void`
`opendata(String name)`
opendata opens an existing dataset for access.
`void`
`opengroup(String name, String nxclass)`
opengroup opens the group name with class nxclass.
`void`
`opengrouppath(String path)`
opengrouppath opens groups and datsets accroding to the path string given.
`void`
`openpath(String path)`
openpath opens groups and datsets accroding to the path string given.
`void`
`opensourcepath()`
opensourcepath opens the group from which the current item was linked Returns an error if the current item is not linked.
`void`
`putattr(String name, Object array, int iType)`
putattr adds a named attribute to a previously opened dataset or group or a global attribute if nothing is open.
`void`
`putattr(String name, Object array, int[] size, int iType)`
putattr adds a named attribute to a previously opened dataset or group or a global attribute if nothing is open.
`void`
`putdata(Object array)`
putdata writes the data from array into a previously opened dataset.
`void`
`putslab(Object array, int[] start, int[] size)`
putslab writes a subset of a larger dataset to a previously opened dataset.
`void`
`putslab(Object array, long[] start, long[] size)`
putslab writes a subset of a larger dataset to a previously opened dataset.
`void`
`setnumberformat(int type, String format)`
setnumberformat sets the number format for printing number when using the XML-NeXus format.

## Method Details

### flush

void flush() throws NexusException
flush writes all previously unsaved data to disk. All directory searches are invalidated. Any open SDS is closed.

Throws:
  `NexusException` - if an error occurs.

### finalize

void finalize() throws Throwable
finalize closes the file. It is supposed to be called by the garbage collector when the object is collected. As this happens at discretion of the garbage collector it is safer to call finalize yourself, when a NeXus file needs to be closed. Multiple calls to finalize do no harm.

Throws:
  `Throwable` - because it is required by the definition of finalize.

### close

void close() throws NexusException
close the NeXus file. To make javalint and diamond happy

Throws:
  `NexusException`

### makegroup

void makegroup(String name, String nxclass) throws NexusException
makegroup creates a new group below the current group within the NeXus file hierarchy.

Parameters:
  `name` - The name of the group to create.
  `nxclass` - The classname of the group.
Throws:
  `NexusException` - if an error occurs during this operation.

### opengroup

void opengroup(String name, String nxclass) throws NexusException
opengroup opens the group name with class nxclass. The group must exist, otherwise an exception is thrown. opengroup is similar to a cd name in a filesystem.

Parameters:
  `name` - the name of the group to open.
  `nxclass` - the classname of the group to open.
Throws:
  `NexusException` - when something goes wrong.

### openpath

void openpath(String path) throws NexusException
openpath opens groups and datsets accroding to the path string given. The path syntax follows unix conventions. Both absolute and relative paths are possible. All objects of the path must exist.

Parameters:
  `path` - The path string
Throws:
  `NexusException` - when something goes wrong.

### opengrouppath

void opengrouppath(String path) throws NexusException
opengrouppath opens groups and datsets accroding to the path string given. The path syntax follows unix conventions. Both absolute and relative paths are possible. All objects of the path must exist. This function stops int the last group.

Parameters:
  `path` - The path string
Throws:
  `NexusException` - when something goes wrong.

### getpath

String getpath() throws NexusException
return the current path into the NeXus file in the form of a Unix path string.

Returns:
  A unix path string
Throws:
  `NexusException`

### closegroup

void closegroup() throws NexusException
closegroup closes access to the current group and steps down one step in group hierarchy.

Throws:
  `NexusException` - when an error occurs during this operation.

### makedata

void makedata(String name, int type, int rank, int[] dim) throws NexusException
makedata creates a new dataset with the specified characteristics in the current group.

Parameters:
  `name` - The name of the dataset.
  `type` - The number type of the dataset. Usually a constant from a selection of values.
  `rank` - The rank or number of dimensions of the dataset.
  `dim` - An array containing the length of each dimension. dim must have at least rank entries. Dimension passed as -1 denote an unlimited dimension.
Throws:
  `NexusException` - when the dataset could not be created.

### makedata

void makedata(String name, int type, int rank, long[] dim) throws NexusException
makedata creates a new dataset with the specified characteristics in the current group.

Parameters:
  `name` - The name of the dataset.
  `type` - The number type of the dataset. Usually a constant from a selection of values.
  `rank` - The rank or number of dimensions of the dataset.
  `dim` - An array containing the length of each dimension. dim must have at least rank entries. Dimension passed as -1 denote an unlimited dimension.
Throws:
  `NexusException` - when the dataset could not be created.

### compmakedata

void compmakedata(String name, int type, int rank, int[] dim, int compression_type, int[] iChunk) throws NexusException
compmakedata creates a new dataset with the specified characteristics in the current group. This data set will be compressed.

Parameters:
  `name` - The name of the dataset.
  `type` - The number type of the dataset. Usually a constant from a selection of values.
  `rank` - The rank or number of dimensions of the dataset.
  `dim` - An array containing the length of each dimension. dim must have at least rank entries. Dimension passed as -1 denote an unlimited dimension.
  `compression_type` - determines the compression type.
  `iChunk` - With HDF-5, slabs can be written to compressed data sets. The size of these slabs is specified through the chunk array. This must have the rank values for the size of the chunk to be written in each dimension.
Throws:
  `NexusException` - when the dataset could not be created.

### compmakedata

void compmakedata(String name, int type, int rank, long[] dim, int compression_type, long[] iChunk) throws NexusException
compmakedata creates a new dataset with the specified characteristics in the current group. This data set will be compressed.

Parameters:
  `name` - The name of the dataset.
  `type` - The number type of the dataset. Usually a constant from a selection of values.
  `rank` - The rank or number of dimensions of the dataset.
  `dim` - An array containing the length of each dimension. dim must have at least rank entries. Dimension passed as -1 denote an unlimited dimension.
  `compression_type` - determines the compression type.
  `iChunk` - With HDF-5, slabs can be written to compressed data sets. The size of these slabs is specified through the chunk array. This must have the rank values for the size of the chunk to be written in each dimension.
Throws:
  `NexusException` - when the dataset could not be created.

### opendata

void opendata(String name) throws NexusException
opendata opens an existing dataset for access. For instance for reading or writing.

Parameters:
  `name` - The name of the dataset to open.
Throws:
  `NexusException` - when the dataset does not exist or something else is wrong.

### closedata

void closedata() throws NexusException
closedata closes an opened dataset. Then no further access is possible without a call to opendata.

Throws:
  `NexusException` - when an error occurrs.

### compress

void compress(int compression_type) throws NexusException
causes the currently open dataset to be compressed on file. This must be called after makedata and before writing to the dataset.

Parameters:
  `compression_type` - determines the type of compression to use.
Throws:
  `NexusException` - when no dataset is open or an error occurs.

### getdata

void getdata(Object array) throws NexusException
getdata reads the data from an previously openend dataset into array.

Parameters:
  `array` - An n-dimensional array of the appropriate number type for the dataset. Make sure to have the right type and size here.
Throws:
  `NexusException` - when either an error occurs or no dataset is open or array is not of the right type to hold the data.

### getslab

void getslab(int[] start, int[] size, Object array) throws NexusException
getslab reads a subset of a large dataset into array.

Parameters:
  `start` - An array of dimension rank which contains the start position in the dataset from where to start reading.
  `size` - An array of dimension rank which contains the size in each dimension of the data subset to read.
  `array` - An array for holding the returned data values.
Throws:
  `NexusException` - when either an error occurs or no dataset is open or array is not of the right type to hold the data.

### getslab

void getslab(long[] start, long[] size, Object array) throws NexusException
getslab reads a subset of a large dataset into array.

Parameters:
  `start` - An array of dimension rank which contains the start position in the dataset from where to start reading.
  `size` - An array of dimension rank which contains the size in each dimension of the data subset to read.
  `array` - An array for holding the returned data values.
Throws:
  `NexusException` - when either an error occurs or no dataset is open or array is not of the right type to hold the data.

### getattr

void getattr(String name, Object data, int[] args) throws NexusException
getattr retrieves the data associated with the attribute name.

Parameters:
  `name` - The name of the attribute.
  `data` - an array with sufficient space for holding the attribute data.
  `args` - An integer array holding the number of data elements in data as args[0], and the type as args[1]. Both values will be updated while reading.
Throws:
  `NexusException` - when either an error occurs or the attribute could not be found.

### getattr

Object getattr(String name) throws NexusException
getattr retrieves the data associated with the attribute * name.

Parameters:
  `name` - The name of the attribute.
Returns:
  The attribute data as an array.
Throws:
  `NexusException` - when either an error occurs or the attribute could not be found.

### putdata

void putdata(Object array) throws NexusException
putdata writes the data from array into a previously opened dataset.

Parameters:
  `array` - The data to write.
Throws:
  `NexusException` - when an error occurs.

### putslab

void putslab(Object array, int[] start, int[] size) throws NexusException
putslab writes a subset of a larger dataset to a previously opened dataset.

Parameters:
  `array` - The data to write.
  `start` - An integer array of dimension rank which holds the startcoordinates of the data subset in the larger dataset.
  `size` - An integer array of dimension rank whidh holds the size in each dimension of the data subset to write.
Throws:
  `NexusException` - when an error occurs.

### putslab

void putslab(Object array, long[] start, long[] size) throws NexusException
putslab writes a subset of a larger dataset to a previously opened dataset.

Parameters:
  `array` - The data to write.
  `start` - An integer array of dimension rank which holds the startcoordinates of the data subset in the larger dataset.
  `size` - An integer array of dimension rank whidh holds the size in each dimension of the data subset to write.
Throws:
  `NexusException` - when an error occurs.

### putattr

void putattr(String name, Object array, int iType) throws NexusException
putattr adds a named attribute to a previously opened dataset or group or a global attribute if nothing is open.

Parameters:
  `name` - The name of the attribute.
  `array` - The data of the attribute.
  `iType` - The number type of the attribute.
Throws:
  `NexusException` - if an error occurs.

### putattr

void putattr(String name, Object array, int[] size, int iType) throws NexusException
putattr adds a named attribute to a previously opened dataset or group or a global attribute if nothing is open.

Parameters:
  `name` - The name of the attribute.
  `array` - The data of the attribute.
  `iType` - The number type of the attribute.
Throws:
  `NexusException` - if an error occurs.

### getinfo

void getinfo(int[] iDim, int[] args) throws NexusException
getinfo retrieves information about a previously opened dataset.

Parameters:
  `iDim` - An array which will be filled with the size of the dataset in each dimension.
  `args` - An integer array which will hold more information about the dataset after return. The fields: args[0] is the rank, args[1] is the number type.
Throws:
  `NexusException` - when an error occurs.

### getinfo

void getinfo(long[] iDim, int[] args) throws NexusException
getinfo retrieves information about a previously opened dataset.

Parameters:
  `iDim` - An array which will be filled with the size of the dataset in each dimension.
  `args` - An integer array which will hold more information about the dataset after return. The fields: args[0] is the rank, args[1] is the number type.
Throws:
  `NexusException` - when an error occurs.

### setnumberformat

void setnumberformat(int type, String format) throws NexusException
setnumberformat sets the number format for printing number when using the XML-NeXus format. For HDF4 and HDF5 this is ignored. If a dataset is open, the format for the dataset is set, if none is open the default setting for the number type is changed. The format must be a ANSII-C language format string.

Parameters:
  `type` - The NeXus type to set the format for.
  `format` - The new format to use.
Throws:
  `NexusException`

### groupdir

Hashtable groupdir() throws NexusException
groupdir will retrieve the content of the currently open vGroup. groupdir is similar to an ls in unix.

Returns:
  A Hashtable which will hold the names of the items in the group as keys and the NeXus classname for vGroups or the string 'SDS' for datasets as values.
Throws:
  `NexusException` - if an error occurs

### attrdir

Hashtable attrdir() throws NexusException
attrdir returns the attributes of the currently open dataset or the file global attributes if no dataset is open.

Returns:
  A Hashtable which will hold the names of the attributes as keys. For each key there is an AttributeEntry class as value.
Throws:
  `NexusException` - when an error occurs.

### getgroupID

NXlink getgroupID() throws NexusException
getgroupID gets the data necessary for linking the current vGroup somewhere else.

Returns:
  A NXlink object holding the link data.
Throws:
  `NexusException` - if an error occurs.

### getdataID

NXlink getdataID() throws NexusException
getdataID gets the data necessary for linking the current dataset somewhere else.

Returns:
  A NXlink object holding the link data.
Throws:
  `NexusException` - if an error occurs.

### makelink

void makelink(NXlink target) throws NexusException
makelink links the object described by target into the current vGroup.

Parameters:
  `target` - The Object to link into the current group.
Throws:
  `NexusException` - if an error occurs.

### makenamedlink

void makenamedlink(String name, NXlink target) throws NexusException
makenamedlink links the object described by target into the current vGroup. The object will have a new name in the group into which it is linked

Parameters:
  `name` - The name of this object in the current group
  `target` - The Object to link into the current group.
Throws:
  `NexusException` - if an error occurs.

### opensourcepath

void opensourcepath() throws NexusException
opensourcepath opens the group from which the current item was linked Returns an error if the current item is not linked.

Throws:
  `NexusException` - if an error occurs.

### inquirefile

String inquirefile() throws NexusException
inquirefile inquires which file we are currently in. This is a support function for external linking

Returns:
  The current file
Throws:
  `NexusException` - when things are wrong

### linkexternal

void linkexternal(String name, String nxclass, String nxurl) throws NexusException
linkexternal links group name, nxclass to the URL nxurl

Parameters:
  `name` - The name of the vgroup to link to
  `nxclass` - The class name of the linked vgroup
  `nxurl` - The URL to the linked external file
Throws:
  `NexusException` - if things are wrong

### linkexternaldataset

void linkexternaldataset(String name, String nxurl) throws NexusException
linkexternaldataset links dataset name to the URL nxurl

Parameters:
  `name` - The name of the dataset to link to
  `nxurl` - The URL to the linked external file
Throws:
  `NexusException` - if things are wrong

### isexternalgroup

String isexternalgroup(String name, String nxclass) throws NexusException
nxisexternalgroup test the group name, nxclass if it is linked externally

Parameters:
  `name` - of the group to test
  `nxclass` - class of the group to test
Returns:
  null when the group is not linked, else a string giving the URL of the linked resource
Throws:
  `NexusException` - if things are wrong

### isexternaldataset

String isexternaldataset(String name) throws NexusException
nxisexternaldataset if the named dataset is is linked externally

Parameters:
  `name` - of the dataset to test
Returns:
  null when the it is not linked, else a string giving the URL of the linked resource
Throws:
  `NexusException` - if things are wrong