public class ArrayStructureBB extends ArrayStructure
Structure pdata = (Structure) ncfile.findVariable( name);
StructureMembers members = pdata.makeStructureMembers();
members.findMember("value").setDataParam(0); // these are the offsets into the record
members.findMember("x_start").setDataParam(2);
members.findMember("y_start").setDataParam(4);
members.findMember("direction").setDataParam(6);
members.findMember("speed").setDataParam(8);
int recsize = pos[1] - pos[0]; // each record must be all the same size
members.setStructureSize( recsize);
ArrayStructureBB asbb = new ArrayStructureBB( members, new int[] { size}, bos, pos[0]);
For String members, you must store the Strings in the stringHeap. An integer index into the heap is used in the ByteBuffer.ArrayArrayStructure.ArrayStructureIterator| Modifier and Type | Field and Description |
|---|---|
protected int |
bb_offset |
protected ByteBuffer |
bbuffer |
members, nelems, sdata| Constructor and Description |
|---|
ArrayStructureBB(StructureMembers members,
int[] shape)
Create a new Array of type StructureData and the given members and shape.
|
ArrayStructureBB(StructureMembers members,
int[] shape,
ByteBuffer bbuffer,
int offset)
Construct an ArrayStructureBB with the given ByteBuffer.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addObjectToHeap(int recnum,
StructureMembers.Member m,
Object s) |
int |
addObjectToHeap(Object s) |
protected int |
calcOffsetSetOrder(int recnum,
StructureMembers.Member m) |
protected void |
copyBytes(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyChars(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyDoubles(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyFloats(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyInts(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyLongs(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyObjects(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyShorts(int recnum,
StructureMembers.Member m,
IndexIterator result) |
Array |
getArray(int recnum,
StructureMembers.Member m)
Get member data of any type for a specific record as an Array.
|
ArraySequence |
getArraySequence(int recnum,
StructureMembers.Member m)
Get member data of type ArraySequence
|
ArrayStructure |
getArrayStructure(int recnum,
StructureMembers.Member m)
Get member data of type array of Structure.
|
ByteBuffer |
getByteBuffer()
Return backing storage as a ByteBuffer
|
List<Object> |
getHeap()
DO NOT MODIFY
|
byte[] |
getJavaArrayByte(int recnum,
StructureMembers.Member m)
Get member data of type byte as a 1D array.
|
char[] |
getJavaArrayChar(int recnum,
StructureMembers.Member m)
Get member data of type char as a 1D array.
|
double[] |
getJavaArrayDouble(int recnum,
StructureMembers.Member m)
Get member data of type double as a 1D array.
|
float[] |
getJavaArrayFloat(int recnum,
StructureMembers.Member m)
Get member data of type float as a 1D array.
|
int[] |
getJavaArrayInt(int recnum,
StructureMembers.Member m)
Get member data of type int as a 1D array.
|
long[] |
getJavaArrayLong(int recnum,
StructureMembers.Member m)
Get member data of type long as a 1D array.
|
short[] |
getJavaArrayShort(int recnum,
StructureMembers.Member m)
Get member data of type short as a 1D array.
|
String[] |
getJavaArrayString(int recnum,
StructureMembers.Member m)
Get member data of type String as a 1D array.
|
byte |
getScalarByte(int recnum,
StructureMembers.Member m)
Get scalar member data of type byte.
|
char |
getScalarChar(int recnum,
StructureMembers.Member m)
Get scalar member data of type char.
|
double |
getScalarDouble(int recnum,
StructureMembers.Member m)
Get scalar member data of type double.
|
float |
getScalarFloat(int recnum,
StructureMembers.Member m)
Get scalar member data of type float.
|
int |
getScalarInt(int recnum,
StructureMembers.Member m)
Get scalar member data of type int.
|
long |
getScalarLong(int recnum,
StructureMembers.Member m)
Get scalar member data of type long.
|
short |
getScalarShort(int recnum,
StructureMembers.Member m)
Get scalar member data of type short.
|
String |
getScalarString(int recnum,
StructureMembers.Member m)
Get member data of type String or char.
|
StructureData |
getScalarStructure(int recnum,
StructureMembers.Member m)
Get member data of type Structure.
|
static void |
main(String[] argv) |
protected StructureData |
makeStructureData(ArrayStructure as,
int index) |
static int |
setOffsets(StructureMembers members)
Set the offsets, based on m.getSizeBytes().
|
void |
showInternal(Formatter f,
Indent indent) |
static int |
showOffsets(StructureMembers members,
Indent indent,
Formatter f) |
convertScalarDouble, convertScalarFloat, convertScalarInt, convertScalarLong, copy, copyFrom1DJavaArray, copySequences, copyStructures, copyTo1DJavaArray, createView, extractMemberArray, findMember, getArrayObject, getBoolean, getBoolean, getByte, getByte, getChar, getChar, getDouble, getDouble, getElementType, getFloat, getFloat, getInt, getInt, getLong, getLong, getMembers, getObject, getObject, getScalarObject, getShort, getShort, getSizeBytes, getStorage, getStructureData, getStructureData, getStructureDataIterator, getStructureMemberNames, getStructureMembers, getStructureSize, iterator, sectionNoReduce, setBoolean, setBoolean, setByte, setByte, setChar, setChar, setDouble, setDouble, setFloat, setFloat, setInt, setInt, setLong, setLong, setMemberArray, setObject, setObject, setShort, setShort, showInternalMembersarraycopy, copyTo1DJavaArray, copyToNDJavaArray, factory, factory, factory, factory, factoryConstant, flip, get1DJavaArray, get1DJavaArray, getDataAsByteBuffer, getDataAsByteBuffer, getDataAsByteBuffer, getDataType, getIndex, getIndexIterator, getRangeIterator, getRank, getShape, getSize, hasNext, isConstant, isUnsigned, isVlen, makeArray, makeArray, makeArray, makeArrayRankPlusOne, makeFromJavaArray, makeFromJavaArray, makeObjectArray, makeVlenArray, next, nextBoolean, nextByte, nextChar, nextDouble, nextFloat, nextInt, nextLong, nextShort, permute, reduce, reduce, resetLocalIterator, reshape, reshapeNoCopy, section, section, section, sectionNoReduce, shapeToString, slice, toString, transposeclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorprotected ByteBuffer bbuffer
protected int bb_offset
public ArrayStructureBB(StructureMembers members, int[] shape)
byte [] result = (byte []) structureArray.getStorage(); members - a description of the structure membersshape - the shape of the Array.public ArrayStructureBB(StructureMembers members, int[] shape, ByteBuffer bbuffer, int offset)
members - the list of structure members.shape - the shape of the structure arraybbuffer - the data is stored in this ByteBuffer. bbuffer.order must already be set.offset - offset from the start of the ByteBufffer to the first record.public static int setOffsets(StructureMembers members)
members - set offsets for these memberspublic static int showOffsets(StructureMembers members, Indent indent, Formatter f)
protected StructureData makeStructureData(ArrayStructure as, int index)
makeStructureData in class ArrayStructurepublic ByteBuffer getByteBuffer()
public double getScalarDouble(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarDouble in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type double.public double[] getJavaArrayDouble(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayDouble in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type double.protected void copyDoubles(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyDoubles in class ArrayStructurepublic float getScalarFloat(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarFloat in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.public Array getArray(int recnum, StructureMembers.Member m)
ArrayStructuregetArray in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member.public float[] getJavaArrayFloat(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayFloat in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.protected void copyFloats(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyFloats in class ArrayStructurepublic byte getScalarByte(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarByte in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type byte.public byte[] getJavaArrayByte(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayByte in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type byte.protected void copyBytes(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyBytes in class ArrayStructurepublic short getScalarShort(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarShort in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type short.public short[] getJavaArrayShort(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayShort in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.protected void copyShorts(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyShorts in class ArrayStructurepublic int getScalarInt(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarInt in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type int.public int[] getJavaArrayInt(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayInt in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type int.protected void copyInts(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyInts in class ArrayStructurepublic long getScalarLong(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarLong in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type long.public long[] getJavaArrayLong(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayLong in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type long.protected void copyLongs(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyLongs in class ArrayStructurepublic char getScalarChar(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarChar in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type char.public char[] getJavaArrayChar(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayChar in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type char.protected void copyChars(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyChars in class ArrayStructurepublic String getScalarString(int recnum, StructureMembers.Member m)
ArrayStructuregetScalarString in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type String or char.public String[] getJavaArrayString(int recnum, StructureMembers.Member m)
ArrayStructuregetJavaArrayString in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type String.protected void copyObjects(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyObjects in class ArrayStructurepublic StructureData getScalarStructure(int recnum, StructureMembers.Member m)
ArrayStructuregetScalarStructure in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m)
ArrayStructuregetArrayStructure in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.public ArraySequence getArraySequence(int recnum, StructureMembers.Member m)
ArrayStructuregetArraySequence in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.protected int calcOffsetSetOrder(int recnum,
StructureMembers.Member m)
public int addObjectToHeap(Object s)
public void addObjectToHeap(int recnum,
StructureMembers.Member m,
Object s)
public void showInternal(Formatter f, Indent indent)
showInternal in class ArrayStructurepublic static void main(String[] argv)