Superclass for implementations of Array of StructureData.
The general way to access data in an ArrayStructure is to use
StructureData getStructureData(Index index).
For 1D arrays (or by caclulating your own recnum for nD arrays), you can also use:
StructureData getStructureData(int recnum).
Once you have a StructureData object, you can access data in a general way by using:
Array StructureData.getArray(Member m)
When dealing with large arrays of Structures, there can be significant overhead in using the generic interfaces. A number of convenience routines may be able to avoid extra Object creation, and so are recommended for efficiency. The following may avoid the overhead of creating the StructureData object:
Array getArray(int recno, StructureMembers.Member m)
The following can be convenient for accessing all the data in the ArrayStructure for one member, but its efficiency depends on the implementation:
Array getMemberArray(StructureMembers.Member m)
These require that you know the data types of the member data, but they are the most efficent:
getScalarXXX(int recnum, Member m) getJavaArrayXXX(int recnum, Member m)
where XXX is Byte, Char, Double, Float, Int, Long, Short, or String. For members that are themselves Structures, the equivilent is:
StructureData getScalarStructure(int recnum, Member m) ArrayStructure getArrayStructure(int recnum, Member m)
These will return any compatible type as a double or float, but will have extra overhead when the types dont match:
convertScalarXXX(int recnum, Member m) convertJavaArrayXXX(int recnum, Member m)
where XXX is Double or Float
@author caron
@see Array
@see StructureData