private StructureMembers createStructureMembers(UserType userType, String varname) { // Incorrect: StructureMembers sm = new StructureMembers(userType.name); StructureMembers sm = new StructureMembers(varname); for (Field fld : userType.flds) { StructureMembers.Member m = sm.addMember(fld.name, null, null, fld.ctype.dt, fld.dims); m.setDataParam(fld.offset); /* This should already have been taken care of if(fld.ctype.isVlen) {m.setShape(new int[]{-1}); } */ if (fld.ctype.dt == DataType.STRUCTURE) { UserType nested_utype = userTypes.get(fld.fldtypeid); StringBuilder partfqn = new StringBuilder(); partfqn.append(EscapeStrings.backslashEscapeCDMString(varname,".")); partfqn.append("."); partfqn.append(EscapeStrings.backslashEscapeCDMString(fld.name,".")); StructureMembers nested_sm = createStructureMembers(nested_utype,partfqn.toString()); m.setStructureMembers(nested_sm); } } sm.setStructureSize(userType.size); return sm; }
private StructureMembers createStructureMembers(UserType userType) { StructureMembers sm = new StructureMembers(userType.name); for (Field fld : userType.flds) { StructureMembers.Member m = sm.addMember(fld.name, null, null, fld.ctype.dt, fld.dims); m.setDataParam(fld.offset); /* This should already have been taken care of if(fld.ctype.isVlen) {m.setShape(new int[]{-1}); } */ if (fld.ctype.dt == DataType.STRUCTURE) { UserType nested_utype = userTypes.get(fld.fldtypeid); StructureMembers nested_sm = createStructureMembers(nested_utype); m.setStructureMembers(nested_sm); } } sm.setStructureSize(userType.size); return sm; }
private StructureMembers createStructureMembers(UserType userType) { StructureMembers sm = new StructureMembers(userType.name); for (Field fld : userType.flds) { StructureMembers.Member m = sm.addMember(fld.name, null, null, fld.ctype.dt, fld.dims); m.setDataParam(fld.offset); if (fld.ctype.isVen) { m.setShape(new int[]{-1}); } if (fld.ctype.dt == DataType.STRUCTURE) { UserType nested_utype = userTypes.get(fld.fldtypeid); StructureMembers nested_sm = createStructureMembers(nested_utype); m.setStructureMembers(nested_sm); } } sm.setStructureSize(userType.size); return sm; }
nested1.setStructureMembers(nested1_members); nested2.setStructureMembers(nested2_members);
public Array makeNested1(StructureMembers.Member nested1, int size1, int size2) throws IOException, InvalidRangeException { StructureMembers members = new StructureMembers(nested1.getName()); nested1.setStructureMembers(members); StructureMembers.Member g1 = members.addMember("g1", "desc", "units", DataType.INT, new int[]{1}); StructureMembers.Member g2 = members.addMember("g2", "desc", "units", DataType.DOUBLE, new int[]{2}); StructureMembers.Member g3 = members.addMember("g3", "desc", "units", DataType.DOUBLE, new int[]{3, 4}); StructureMembers.Member nested2 = members.addMember("nested2", "desc", "units", DataType.STRUCTURE, new int[]{7}); StructureData[] sdata = new StructureData[size1]; for (int i=0; i<size1; i++) { StructureDataW sdw = new StructureDataW( members); sdata[i] = sdw; Array data = Array.factory(DataType.INT, new int[]{1}); sdw.setMemberData(g1, data); fill(data, i * 22); data = Array.factory(DataType.DOUBLE, new int[]{2}); sdw.setMemberData(g2, data); fill(data, i * 222); data = Array.factory(DataType.DOUBLE, new int[]{3, 4}); sdw.setMemberData(g3, data); fill(data, i * 2222); data = makeNested2(nested2, i, size2); sdw.setMemberData(nested2, data); } return new ArrayStructureW(members, new int[]{size1}, sdata); }
private boolean convertStructure(Structure s, StructureMembers sm ) { boolean hasHeap = false; for (StructureMembers.Member m : sm.getMembers()) { Variable v2 = s.findVariable(m.getName()); assert v2 != null; H5header.Vinfo vm = (H5header.Vinfo) v2.getSPobject(); // apparently each member may have seperate byte order (!!!??) if (vm.typeInfo.endian >= 0) m.setDataObject(vm.typeInfo.endian == RandomAccessFile.LITTLE_ENDIAN ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); // vm.dataPos : offset since start of Structure m.setDataParam((int) vm.dataPos); // track if there is a heap if (v2.getDataType() == DataType.STRING || v2.isVariableLength()) hasHeap = true; // recurse if (v2 instanceof Structure) { Structure nested = (Structure) v2; StructureMembers nestSm = nested.makeStructureMembers(); m.setStructureMembers(nestSm); hasHeap |= convertStructure(nested, nestSm); } } return hasHeap; }
private boolean convertStructure(Structure s, StructureMembers sm ) { boolean hasHeap = false; for (StructureMembers.Member m : sm.getMembers()) { Variable v2 = s.findVariable(m.getName()); assert v2 != null; H5header.Vinfo vm = (H5header.Vinfo) v2.getSPobject(); // apparently each member may have seperate byte order (!!!??) if (vm.typeInfo.endian >= 0) m.setDataObject(vm.typeInfo.endian == RandomAccessFile.LITTLE_ENDIAN ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); // vm.dataPos : offset since start of Structure m.setDataParam((int) vm.dataPos); // track if there is a heap if (v2.getDataType() == DataType.STRING || v2.isVariableLength()) hasHeap = true; // recurse if (v2 instanceof Structure) { Structure nested = (Structure) v2; StructureMembers nestSm = nested.makeStructureMembers(); m.setStructureMembers(nestSm); hasHeap |= convertStructure(nested, nestSm); } } return hasHeap; }
private boolean convertStructure(Structure s, StructureMembers sm ) { boolean hasHeap = false; for (StructureMembers.Member m : sm.getMembers()) { Variable v2 = s.findVariable(m.getName()); assert v2 != null; H5header.Vinfo vm = (H5header.Vinfo) v2.getSPobject(); // apparently each member may have seperate byte order (!!!??) if (vm.typeInfo.endian >= 0) m.setDataObject(vm.typeInfo.endian == RandomAccessFile.LITTLE_ENDIAN ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); // vm.dataPos : offset since start of Structure m.setDataParam((int) vm.dataPos); // track if there is a heap if (v2.getDataType() == DataType.STRING || v2.isVariableLength()) hasHeap = true; // recurse if (v2 instanceof Structure) { Structure nested = (Structure) v2; StructureMembers nestSm = nested.makeStructureMembers(); m.setStructureMembers(nestSm); hasHeap |= convertStructure(nested, nestSm); } } return hasHeap; }
public ArrayStructure makeNested1(StructureMembers.Member parent) throws IOException, InvalidRangeException { StructureMembers members = new StructureMembers(parent.getName()); parent.setStructureMembers(members); StructureMembers.Member m = members.addMember("g1", "desc", "units", DataType.INT, new int[]{1}); Array data = Array.factory(DataType.INT, new int[]{4, 9}); m.setDataArray(data); fill(data); m = members.addMember("g2", "desc", "units", DataType.DOUBLE, new int[]{2}); data = Array.factory(DataType.DOUBLE, new int[]{4, 9, 2}); m.setDataArray(data); fill(data); m = members.addMember("g3", "desc", "units", DataType.DOUBLE, new int[]{3, 4}); data = Array.factory(DataType.DOUBLE, new int[]{4, 9, 3, 4}); m.setDataArray(data); fill(data); m = members.addMember("nested2", "desc", "units", DataType.STRUCTURE, new int[]{7}); data = makeNested2(m); m.setDataArray(data); return new ArrayStructureBB(members, new int[]{4, 9}); }
private ArrayStructure makeNested1(StructureMembers.Member parent) throws IOException, InvalidRangeException { StructureMembers members = new StructureMembers(parent.getName()); parent.setStructureMembers(members); StructureMembers.Member m = members.addMember("g1", "desc", "units", DataType.INT, new int[]{1}); Array data = Array.factory(DataType.INT, new int[]{4, 9}); m.setDataArray(data); fill(data); m = members.addMember("g2", "desc", "units", DataType.DOUBLE, new int[]{2}); data = Array.factory(DataType.DOUBLE, new int[]{4, 9, 2}); m.setDataArray(data); fill(data); m = members.addMember("g3", "desc", "units", DataType.DOUBLE, new int[]{3, 4}); data = Array.factory(DataType.DOUBLE, new int[]{4, 9, 3, 4}); m.setDataArray(data); fill(data); m = members.addMember("nested2", "desc", "units", DataType.STRUCTURE, new int[]{7}); data = makeNested2(m); m.setDataArray(data); return new ArrayStructureMA(members, new int[]{4, 9}); }
public Array makeNested2(StructureMembers.Member nested, int who, int size) throws IOException, InvalidRangeException { StructureMembers members = new StructureMembers(nested.getName()); nested.setStructureMembers(members); StructureMembers.Member h1 = members.addMember("h1", "desc", "units", DataType.INT, new int[]{1}); StructureMembers.Member h2 = members.addMember("h2", "desc", "units", DataType.DOUBLE, new int[]{2}); StructureData[] sdata = new StructureData[size]; for (int i=0; i<size; i++) { StructureDataW sdw = new StructureDataW( members); sdata[i] = sdw; Array data = Array.factory(DataType.INT, new int[]{1}); sdw.setMemberData(h1, data); fill(data, i * 303 + who); data = Array.factory(DataType.DOUBLE, new int[]{2}); sdw.setMemberData(h2, data); fill(data, i * 3003+ who); } return new ArrayStructureW(members, new int[]{size}, sdata); }
/** * Create a StructureMembers object that describes this Structure. * CAUTION: Do not use for iterating over a StructureData or ArrayStructure - get the StructureMembers object * directly from the StructureData or ArrayStructure. * * @return a StructureMembers object that describes this Structure. */ public StructureMembers makeStructureMembers() { StructureMembers smembers = new StructureMembers( getShortName()); for (Variable v2 : getVariables()) { StructureMembers.Member m = smembers.addMember( v2.getShortName(), v2.getDescription(), v2.getUnitsString(), v2.getDataType(), v2.getShape()); if (v2 instanceof Structure) m.setStructureMembers( ((Structure)v2).makeStructureMembers()); } return smembers; } //protected StructureMembers smembers = null;
/** * Create a StructureMembers object that describes this Structure. * CAUTION: Do not use for iterating over a StructureData or ArrayStructure - get the StructureMembers object * directly from the StructureData or ArrayStructure. * * @return a StructureMembers object that describes this Structure. */ public StructureMembers makeStructureMembers() { StructureMembers smembers = new StructureMembers( getShortName()); for (Variable v2 : getVariables()) { StructureMembers.Member m = smembers.addMember( v2.getShortName(), v2.getDescription(), v2.getUnitsString(), v2.getDataType(), v2.getShape()); if (v2 instanceof Structure) m.setStructureMembers( ((Structure)v2).makeStructureMembers()); } return smembers; } //protected StructureMembers smembers = null;
/** * Create a StructureMembers object that describes this Structure. * CAUTION: Do not use for iterating over a StructureData or ArrayStructure - get the StructureMembers object * directly from the StructureData or ArrayStructure. * * @return a StructureMembers object that describes this Structure. */ public StructureMembers makeStructureMembers() { StructureMembers smembers = new StructureMembers( getShortName()); for (Variable v2 : getVariables()) { StructureMembers.Member m = smembers.addMember( v2.getShortName(), v2.getDescription(), v2.getUnitsString(), v2.getDataType(), v2.getShape()); if (v2 instanceof Structure) m.setStructureMembers( ((Structure)v2).makeStructureMembers()); } return smembers; } //protected StructureMembers smembers = null;
/** * Set data for one member, over all structures. * This is used by VariableDS to do scale/offset. * * @param m set data for this StructureMembers.Member. * @param memberArray Array values. */ public void setMemberArray(StructureMembers.Member m, Array memberArray) { m.setDataArray(memberArray); if (memberArray instanceof ArrayStructure) { // LOOK ArrayStructure as = (ArrayStructure) memberArray; m.setStructureMembers( as.getStructureMembers()); } }
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}); }
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}); }
/** * Set data for one member, over all structures. * This is used by VariableDS to do scale/offset. * * @param m set data for this StructureMembers.Member. * @param memberArray Array values. */ public void setMemberArray(StructureMembers.Member m, Array memberArray) { m.setDataArray(memberArray); if (memberArray instanceof ArrayStructure) { // LOOK ArrayStructure as = (ArrayStructure) memberArray; m.setStructureMembers( as.getStructureMembers()); } }
/** * Set data for one member, over all structures. * This is used by VariableDS to do scale/offset. * * @param m set data for this StructureMembers.Member. * @param memberArray Array values. */ public void setMemberArray(StructureMembers.Member m, Array memberArray) { m.setDataArray(memberArray); if (memberArray instanceof ArrayStructure) { // LOOK ArrayStructure as = (ArrayStructure) memberArray; m.setStructureMembers(as.getStructureMembers()); } }
public Member(Member from) { this.name = from.name; this.desc = from.desc; this.units = from.units; this.dtype = from.dtype; setStructureMembers(from.members); setShape(from.shape); }