public StructureMembers(StructureMembers from) { this.name = from.name; members = new ArrayList<>(from.getMembers().size()); for (Member m : from.members) { Member nm = new Member(m); // make copy - without the data info addMember( nm); if (m.members != null) // recurse nm.members = new StructureMembers(m.members); } }
/** * Make deep copy from a StructureData to a ArrayStructureBB whose data is contained in a ByteBuffer * @param sdata original ArrayStructure. * @return ArrayStructureBB with all data self contained */ static public ArrayStructureBB copyToArrayBB(StructureData sdata) { return copyToArrayBB(sdata, new StructureMembers(sdata.getStructureMembers()), ByteOrder.BIG_ENDIAN); }
/** * Make deep copy from a StructureData to a ArrayStructureBB whose data is contained in a ByteBuffer. * @param sdata original ArrayStructure. * @return ArrayStructureBB with all data self contained */ static public ArrayStructureBB copyToArrayBB(StructureData sdata) { return copyToArrayBB(sdata, new StructureMembers(sdata.getStructureMembers()), ByteOrder.BIG_ENDIAN); }
public StructureMembers(StructureMembers from) { this.name = from.name; members = new ArrayList<>(from.getMembers().size()); for (Member m : from.members) { Member nm = new Member(m); // make copy - without the data info addMember( nm); if (m.members != null) // recurse nm.members = new StructureMembers(m.members); } }
public StructureMembers(StructureMembers from) { this.name = from.name; members = new ArrayList<Member>(from.getMembers().size()); for (Member m : from.members) { Member nm = new Member(m); // make copy - without the data info addMember( nm); if (m.members != null) // recurse nm.members = new StructureMembers(m.members); } }
/** * @deprecated use StructureDataDeep.copyToArrayBB */ static public ArrayStructureBB copyToArrayBB(StructureData sdata) { StructureMembers sm = new StructureMembers(sdata.getStructureMembers()); int size = sm.getStructureSize(); ByteBuffer bb = ByteBuffer.allocate(size); // default is big endian ArrayStructureBB abb = new ArrayStructureBB(sm, new int[]{1}, bb, 0); ArrayStructureBB.setOffsets(sm); StructureDataDeep.copyToArrayBB(sdata, abb); return abb; }
/** * @deprecated use StructureDataDeep.copyToArrayBB */ static public ArrayStructureBB copyToArrayBB(StructureData sdata) { StructureMembers sm = new StructureMembers(sdata.getStructureMembers()); int size = sm.getStructureSize(); ByteBuffer bb = ByteBuffer.allocate(size); // default is big endian ArrayStructureBB abb = new ArrayStructureBB(sm, new int[]{1}, bb, 0); ArrayStructureBB.setOffsets(sm); StructureDataDeep.copyToArrayBB(sdata, abb); return abb; }
static public ArrayStructureBB copyToArrayBB(StructureData sdata) { StructureMembers smo = sdata.getStructureMembers(); StructureMembers sm = new StructureMembers(smo); int size = sm.getStructureSize(); ByteBuffer bb = ByteBuffer.allocate(size); // default is big endian ArrayStructureBB abb = new ArrayStructureBB(sm, new int[]{1}, bb, 0); ArrayStructureBB.setOffsets(sm); copyToArrayBB(sdata, abb); return abb; }
SequenceConverter(StructureDS orgStruct, ArraySequence orgSeq) { super(orgSeq.getStructureMembers(), orgSeq.getShape()); this.orgStruct = orgStruct; this.orgSeq = orgSeq; this.nelems = orgSeq.getStructureDataCount(); // copay and convert the members members = new StructureMembers(orgSeq.getStructureMembers()); orgStruct.convertMemberInfo(members); }
SequenceConverter(StructureDS orgStruct, ArraySequence orgSeq) { super(orgSeq.getStructureMembers(), orgSeq.getShape()); this.orgStruct = orgStruct; this.orgSeq = orgSeq; this.nelems = orgSeq.getStructureDataCount(); // copy and convert the members members = new StructureMembers(orgSeq.getStructureMembers()); orgStruct.convertMemberInfo(members); }
SequenceConverter(StructureDS orgStruct, ArraySequence orgSeq) { super(orgSeq.getStructureMembers(), orgSeq.getShape()); this.orgStruct = orgStruct; this.orgSeq = orgSeq; this.nelems = orgSeq.getStructureDataCount(); // copy and convert the members members = new StructureMembers(orgSeq.getStructureMembers()); orgStruct.convertMemberInfo(members); }
StructureData makeMissing(StructureMembers.Member seqm, ArraySequence seq) { StructureData result = missingData.get(seqm.getName()); if (result != null) return result; StructureMembers sm = new StructureMembers(seq.getStructureMembers()); StructureDataW resultW = new StructureDataW(sm); for (StructureMembers.Member m : sm.getMembers()) { VariableDS var = vars.get(m.getName()); Array missingData = var.getMissingDataArray(m.getShape()); resultW.setMemberData(m, missingData); } missingData.put(seqm.getName(), resultW); return resultW; }
static public StructureData make(String name, Object value) { StructureMembers members = new StructureMembers(""); DataType dtype = DataType.getType(value.getClass()); StructureMembers.Member m = members.addMember(name, null, null, dtype, new int[]{1}); StructureDataW sw = new StructureDataW(members); Array dataArray = Array.factory(dtype, new int[]{1}); dataArray.setObject(dataArray.getIndex(), value); sw.setMemberData(m, dataArray); return sw; }
static public StructureData make(String name, Object value) { StructureMembers members = new StructureMembers(""); DataType dtype = DataType.getType(value.getClass()); StructureMembers.Member m = members.addMember(name, null, null, dtype, new int[]{1}); StructureDataW sw = new StructureDataW(members); Array dataArray = Array.factory(dtype, new int[]{1}); dataArray.setObject(dataArray.getIndex(), value); sw.setMemberData(m, dataArray); return sw; }
static public StructureData make(String name, Object value) { StructureMembers members = new StructureMembers(""); DataType dtype = DataType.getType(value.getClass(), false); // LOOK unsigned StructureMembers.Member m = members.addMember(name, null, null, dtype, new int[]{1}); StructureDataW sw = new StructureDataW(members); Array dataArray = Array.factory(dtype, new int[]{1}); dataArray.setObject(dataArray.getIndex(), value); sw.setMemberData(m, dataArray); return sw; }
static private ArrayStructure sectionArrayStructure(ParsedSectionSpec child, ArrayStructure innerData, StructureMembers.Member m) throws IOException, InvalidRangeException { StructureMembers membersw = new StructureMembers(m.getStructureMembers()); // no data arrays get propagated ArrayStructureW result = new ArrayStructureW(membersw, child.section.getShape()); int count = 0; Section.Iterator iter = child.section.getIterator(child.v.getShape()); while (iter.hasNext()) { int recno = iter.next(); StructureData sd = innerData.getStructureData(recno); result.setStructureData(sd, count++); } return result; }
static private ArrayStructure sectionArrayStructure(ParsedSectionSpec child, ArrayStructure innerData, StructureMembers.Member m) throws IOException, InvalidRangeException { StructureMembers membersw = new StructureMembers(m.getStructureMembers()); // no data arrays get propagated ArrayStructureW result = new ArrayStructureW(membersw, child.section.getShape()); int count = 0; Section.Iterator iter = child.section.getIterator(child.v.getShape()); while (iter.hasNext()) { int recno = iter.next(null); StructureData sd = innerData.getStructureData(recno); result.setStructureData(sd, count++); } return result; }
static private ArrayStructure sectionArrayStructure(ParsedSectionSpec child, ArrayStructure innerData, StructureMembers.Member m) throws IOException, InvalidRangeException { StructureMembers membersw = new StructureMembers(m.getStructureMembers()); // no data arrays get propagated ArrayStructureW result = new ArrayStructureW(membersw, child.section.getShape()); int count = 0; Section.Iterator iter = child.section.getIterator(child.v.getShape()); while (iter.hasNext()) { int recno = iter.next(null); StructureData sd = innerData.getStructureData(recno); result.setStructureData(sd, count++); } return result; }
private ArrayStructure makeNested2(StructureMembers.Member parent) throws IOException, InvalidRangeException { StructureMembers members = new StructureMembers(parent.getName()); parent.setStructureMembers(members); StructureMembers.Member m = members.addMember("h1", "desc", "units", DataType.INT, new int[]{1}); Array data = Array.factory(DataType.INT, new int[]{4, 9, 7}); m.setDataArray(data); fill(data); m = members.addMember("h2", "desc", "units", DataType.DOUBLE, new int[]{2}); data = Array.factory(DataType.DOUBLE, new int[]{4, 9, 7, 2}); m.setDataArray(data); fill(data); return new ArrayStructureMA(members, new int[]{4, 9, 7}); }
public ArrayStructure makeNested2(StructureMembers.Member parent) throws IOException, InvalidRangeException { StructureMembers members = new StructureMembers(parent.getName()); parent.setStructureMembers(members); StructureMembers.Member m = members.addMember("h1", "desc", "units", DataType.INT, new int[]{1}); Array data = Array.factory(DataType.INT, new int[]{4, 9, 7}); m.setDataArray(data); fill(data); m = members.addMember("h2", "desc", "units", DataType.DOUBLE, new int[]{2}); data = Array.factory(DataType.DOUBLE, new int[]{4, 9, 7, 2}); m.setDataArray(data); fill(data); return new ArrayStructureBB(members, new int[]{4, 9, 7}); }