for (StructureMembers.Member m : member.getStructureMembers().getMembers()) { members.add(new MemberData(m, section.getShape()));
public static int showOffsets(StructureMembers members, Indent indent, Formatter f) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { f.format("%s%s offset=%d (%d %s = %d bytes)%n", indent, m.getName(), m.getDataParam(), m.getSize(), m.getDataType(), m.getSizeBytes()); if (m.getStructureMembers() != null) { indent.incr(); StructureMembers nested = m.getStructureMembers(); f.format("%n%s%s == %d bytes%n", indent, nested.getName(), nested.getStructureSize()); showOffsets(nested, indent, f); indent.decr(); } } return offset; }
public static int showOffsets(StructureMembers members, Indent indent, Formatter f) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { f.format("%s%s offset=%d (%d %s = %d bytes)%n", indent, m.getName(), m.getDataParam(), m.getSize(), m.getDataType(), m.getSizeBytes()); if (m.getStructureMembers() != null) { indent.incr(); StructureMembers nested = m.getStructureMembers(); f.format("%n%s%s == %d bytes%n", indent, nested.getName(), nested.getStructureSize()); showOffsets(nested, indent, f); indent.decr(); } } return offset; }
} else if (!Objects.deepEquals(member1.getShape(), member2.getShape())) { return false; } else if (!equals(member1.getStructureMembers(), member2.getStructureMembers())) { return false; } else if (!Objects.deepEquals(member1.isVariableLength(), member2.isVariableLength())) {
/** * Set the offsets, based on m.getSizeBytes(). * Also sets members.setStructureSize(). * @param members set offsets for these members * @return the total size */ public static int setOffsets(StructureMembers members) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { m.setDataParam(offset); offset += m.getSizeBytes(); // set inner offsets (starts again at 0) if (m.getStructureMembers() != null) setOffsets(m.getStructureMembers()); } members.setStructureSize(offset); return offset; }
/** * Set the offsets, based on m.getSizeBytes(). * Also sets members.setStructureSize(). * @param members set offsets for these members * @return the total size */ public static int setOffsets(StructureMembers members) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { m.setDataParam(offset); offset += m.getSizeBytes(); // set inner offsets (starts again at 0) if (m.getStructureMembers() != null) setOffsets(m.getStructureMembers()); } members.setStructureSize(offset); return offset; }
/** * Set the offsets, based on m.getSizeBytes(). * Also sets members.setStructureSize(). * @param members set offsets for these members * @return the total size */ public static int setOffsets(StructureMembers members) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { m.setDataParam(offset); offset += m.getSizeBytes(); // set inner offsets (starts again at 0) if (m.getStructureMembers() != null) setOffsets(m.getStructureMembers()); } members.setStructureSize(offset); return offset; }
private void convertMemberInfo(StructureMembers wrapperSm) { for (StructureMembers.Member m : wrapperSm.getMembers()) { Variable v = findVariable(m.getName()); if ((v == null) && (orgVar != null)) // may have been renamed v = (Variable) findVariableFromOrgName(m.getName()); if (v != null) { // a section will have missing variables LOOK wrapperSm probably wrong in that case // log.error("Cant find " + m.getName()); //else m.setVariableInfo(v.getShortName(), v.getDescription(), v.getUnitsString(), v.getDataType()); } // nested structures if (v instanceof StructureDS) { StructureDS innerStruct = (StructureDS) v; innerStruct.convertMemberInfo(m.getStructureMembers()); } } }
private void convertMemberInfo(StructureMembers wrapperSm) { for (StructureMembers.Member m : wrapperSm.getMembers()) { Variable v = findVariable(m.getName()); if ((v == null) && (orgVar != null)) // may have been renamed v = (Variable) findVariableFromOrgName(m.getName()); if (v != null) // a section will have missing variables LOOK wrapperSm probbably wrong in that case // log.error("Cant find " + m.getName()); //else m.setVariableInfo(v.getShortName(), v.getDescription(), v.getUnitsString(), v.getDataType()); // nested structures if (v instanceof StructureDS) { StructureDS innerStruct = (StructureDS) v; innerStruct.convertMemberInfo(m.getStructureMembers()); } } }
private void convertMemberInfo(StructureMembers wrapperSm) { for (StructureMembers.Member m : wrapperSm.getMembers()) { Variable v = findVariable(m.getName()); if ((v == null) && (orgVar != null)) // may have been renamed v = (Variable) findVariableFromOrgName(m.getName()); if (v != null) { // a section will have missing variables LOOK wrapperSm probably wrong in that case // log.error("Cant find " + m.getName()); //else m.setVariableInfo(v.getShortName(), v.getDescription(), v.getUnitsString(), v.getDataType()); } // nested structures if (v instanceof StructureDS) { StructureDS innerStruct = (StructureDS) v; innerStruct.convertMemberInfo(m.getStructureMembers()); } } }
public static int showOffsets(StructureMembers members, Indent indent, Formatter f) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { f.format("%s%s offset=%d (%d %s = %d bytes)%n", indent, m.getName(), m.getDataParam(), m.getSize(), m.getDataType(), m.getSizeBytes()); if (m.getStructureMembers() != null) { indent.incr(); StructureMembers nested = m.getStructureMembers(); f.format("%n%s%s == %d bytes%n", indent, nested.getName(), nested.getStructureSize()); showOffsets(nested, indent, f); indent.decr(); } } return offset; }
@Override public StructureData getScalarStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getScalarStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB subset = new ArrayStructureBB(m.getStructureMembers(), new int[]{1}, this.bbuffer, offset); return new StructureDataA(subset, 0); }
@Override public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getArrayStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB result = new ArrayStructureBB(m.getStructureMembers(), m.getShape(), this.bbuffer, offset); result.heap = this.heap; // share the heap return result; }
@Override public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getArrayStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB result = new ArrayStructureBB(m.getStructureMembers(), m.getShape(), this.bbuffer, offset); result.heap = this.heap; // share the heap return result; }
@Override public StructureData getScalarStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getScalarStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB subset = new ArrayStructureBB(m.getStructureMembers(), new int[]{1}, this.bbuffer, offset); return new StructureDataA(subset, 0); }
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; }
@Override public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getArrayStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB result = new ArrayStructureBB(m.getStructureMembers(), m.getShape(), this.bbuffer, offset); result.heap = this.heap; // share the heap return result; }
@Override public StructureData getScalarStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getScalarStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB subset = new ArrayStructureBB(m.getStructureMembers(), new int[]{1}, this.bbuffer, offset); return new StructureDataA(subset, 0); }
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; }