@Override public StructureDataIterator getStructureDataIterator() { // throws java.io.IOException { return new StructureDataConverter(orgStruct, orgSeq.getStructureDataIterator()); } }
@Override public StructureDataIterator getStructureDataIterator() { // throws java.io.IOException { return new StructureDataConverter(orgStruct, orgSeq.getStructureDataIterator()); } }
@Override public StructureDataIterator getStructureDataIterator() { // throws java.io.IOException { return new StructureDataConverter(orgStruct, orgSeq.getStructureDataIterator()); } }
static private void printSequence(PrintWriter out, ArraySequence seq, Indent indent, CancelTask ct) { // throws IOException { try (StructureDataIterator iter = seq.getStructureDataIterator()) { while (iter.hasNext()) { StructureData sdata = iter.next(); out.println("\n" + indent + "{"); printStructureData(out, sdata, indent, ct); out.print(indent + "} " + sdata.getName()); if (ct != null && ct.isCancel()) return; } } catch (IOException e) { e.printStackTrace(); // shouldnt happen ?? } }
static private void printSequence(PrintWriter out, ArraySequence seq, Indent indent, CancelTask ct) { // throws IOException { StructureDataIterator iter = seq.getStructureDataIterator(); try { while (iter.hasNext()) { StructureData sdata = iter.next(); out.println("\n" + indent + "{"); printStructureData(out, sdata, indent, ct); out.print(indent + "} " + sdata.getName()); if (ct != null && ct.isCancel()) return; } } catch (IOException e) { e.printStackTrace(); // shouldnt happen ?? } finally { iter.finish(); } }
static private void printSequence(PrintWriter out, ArraySequence seq, Indent indent, CancelTask ct) { // throws IOException { StructureDataIterator iter = seq.getStructureDataIterator(); try { while (iter.hasNext()) { StructureData sdata = iter.next(); out.println("\n" + indent + "{"); printStructureData(out, sdata, indent, ct); out.print(indent + "} " + sdata.getName()); if (ct != null && ct.isCancel()) return; } } catch (IOException e) { e.printStackTrace(); // shouldnt happen ?? } finally { iter.finish(); } }
private List<Short> getDescriptors(ArraySequence seqdata) throws IOException { List<Short> list = new ArrayList<>(); String fxyS = null; List<Variable> vars = seq4.getVariables(); StructureDataIterator iter = seqdata.getStructureDataIterator(); while (iter.hasNext()) { StructureData sdata = iter.next(); List<StructureMembers.Member> members = sdata.getMembers(); for (int i=0; i<vars.size(); i++) { Variable v = vars.get(i); StructureMembers.Member m = members.get(i); String data = sdata.getScalarString(m); if (showD) System.out.printf("%s == %s%n" ,v, data); Attribute att = v.findAttribute(BufrIosp2.fxyAttName); if (att != null && att.getStringValue().equals("0-0-30")) fxyS = sdata.getScalarString(m); } if (showD) System.out.printf("%n"); if (fxyS != null) { short id = Descriptor.getFxy2(fxyS); list.add(id); } } return list; }
public StructureDataIterator getStructureDataIterator(Cursor cursor, int bufferSize) throws IOException { StructureData parentStruct = cursor.getParentStructure(); StructureMembers members = parentStruct.getStructureMembers(); StructureMembers.Member m = members.findMember(nestedTableName); if (m == null) { System.out.println("HEY"); } else if (m.getDataType() == DataType.SEQUENCE) { ArraySequence seq = parentStruct.getArraySequence(m); return seq.getStructureDataIterator(); } else if (m.getDataType() == DataType.STRUCTURE) { ArrayStructure as = parentStruct.getArrayStructure(m); return as.getStructureDataIterator(); } throw new IllegalStateException("Cant find nested table member = " + nestedTableName); }
private void add(StructureData data) throws IOException { for (StructureMembers.Member m : data.getMembers()) { if (showB) System.out.printf("%s%n", m); if (m.getDataType() == DataType.SEQUENCE) { if (m.getName().equals("seq2")) { ArraySequence seq = data.getArraySequence(m); StructureDataIterator iter = seq.getStructureDataIterator(); while (iter.hasNext()) addTableEntryB(iter.next()); } else if (m.getName().equals("seq3")) { ArraySequence seq = data.getArraySequence(m); StructureDataIterator iter = seq.getStructureDataIterator(); while (iter.hasNext()) addTableEntryD(iter.next()); } } } }
private void extractFirst(StructureDataIterator sdataIter, Extract result) throws IOException { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); for (StructureMembers.Member m : sdata.getMembers()) { if (m.getName().equals("Buoy/platform identifier")) result.platformId = sdata.convertScalarDouble(m); else if (m.getDataType() == DataType.SEQUENCE) { ArraySequence data = (ArraySequence) sdata.getArray(m); extractNested(data.getStructureDataIterator(), result); } } } }
@Override public StructureDataIterator getStructureDataIterator(Cursor cursor) throws IOException { StructureData parentStruct = cursor.getParentStructure(); StructureMembers members = parentStruct.getStructureMembers(); StructureMembers.Member m = members.findMember(nestedTableName); if (m.getDataType() == DataType.SEQUENCE) { ArraySequence seq = parentStruct.getArraySequence(m); return seq.getStructureDataIterator(); } else if (m.getDataType() == DataType.STRUCTURE) { ArrayStructure as = parentStruct.getArrayStructure(m); return as.getStructureDataIterator(); } throw new IllegalStateException("Cant find nested table member = " + nestedTableName); }
public StructureDataIterator getStructureDataIterator(Cursor cursor, int bufferSize) throws IOException { StructureData parentStruct = cursor.getParentStructure(); StructureMembers members = parentStruct.getStructureMembers(); StructureMembers.Member m = members.findMember(nestedTableName); members.hideMember(m); // LOOK ?? if (m.getDataType() == DataType.SEQUENCE) { ArraySequence seq = parentStruct.getArraySequence(m); return seq.getStructureDataIterator(); } else if (m.getDataType() == DataType.STRUCTURE) { ArrayStructure as = parentStruct.getArrayStructure(m); return as.getStructureDataIterator(); } throw new IllegalStateException("Cant find nested table member = " + nestedTableName); }
private int countSeq(Structure recordStruct, SeqCount counter) throws IOException { StructureDataIterator iter = recordStruct.getStructureIterator(); while (iter.hasNext()) { StructureData sdata = iter.next(); ArraySequence seq1 = sdata.getArraySequence("seq1"); int n = seq1.getStructureDataCount(); counter.nested_total += n; counter.records++; counter.max = Math.max(counter.max, n); StructureDataIterator siter2 = seq1.getStructureDataIterator(); while (siter2.hasNext()) { StructureData sdata2 = siter2.next(); ArraySequence seq2 = sdata.getArraySequence("seq2"); //int n2 = seq1.getStructureDataCount(); } } return 0; // max; }
static private void extractSectionFromSequence(ParsedSectionSpec child, ArraySequence outerData, IndexIterator to) throws IOException, InvalidRangeException { try (StructureDataIterator sdataIter = outerData.getStructureDataIterator()) { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); Array innerData = sdata.getArray(child.v.getShortName()); MAMath.copy(m.getDataType(), innerData.getIndexIterator(), to); } } }
StructureDataMunged2(StructureData sdata) throws IOException { add(sdata); for (StructureMembers.Member m : sdata.getMembers()) { Action act = actions.get(m.getName()); if (act == null) { continue; } else if (act.what == BufrCdmIndexProto.FldAction.remove) { this.members.hideMember(m) ; } else if (act.what == BufrCdmIndexProto.FldAction.asMissing) { // 0 or 1 int pos = this.members.hideMember(m) ; ArraySequence seq = sdata.getArraySequence(m); StructureDataIterator iter = seq.getStructureDataIterator(); if (iter.hasNext()) { add(pos, iter.next()); } else { // missing data add(pos, makeMissing(m, seq)); } } } } }
static private void extractSectionFromSequence(ParsedSectionSpec child, ArraySequence outerData, IndexIterator to) throws IOException, InvalidRangeException { StructureDataIterator sdataIter = outerData.getStructureDataIterator(); try { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); Array innerData = sdata.getArray(child.v.getShortName()); MAMath.copy(m.getDataType(), innerData.getIndexIterator(), to); } } finally { sdataIter.finish(); } }
static private void extractSectionFromSequence(ParsedSectionSpec child, ArraySequence outerData, IndexIterator to) throws IOException, InvalidRangeException { StructureDataIterator sdataIter = outerData.getStructureDataIterator(); try { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); Array innerData = sdata.getArray(child.v.getShortName()); MAMath.copy(m.getDataType(), innerData.getIndexIterator(), to); } } finally { sdataIter.finish(); } }
StructureDataMunged(StructureData sdata) throws IOException { super(sdata); // munge the StructureMembers StructureMembers sm = new StructureMembers(sdataName); for (StructureMembers.Member m : sdata.getMembers()) { Action act = actions.get(m.getName()); if (act == null) { sm.addMember(m); } else if (act.what == BufrCdmIndexProto.FldAction.remove) { continue; } else if (act.what == BufrCdmIndexProto.FldAction.asMissing) { ArraySequence seq = sdata.getArraySequence(m); StructureDataIterator iter = seq.getStructureDataIterator(); if (!iter.hasNext()) { for (StructureMembers.Member childMember : seq.getMembers()) { sm.addMember(childMember); // LOOK ?? } } else { StructureData childStruct = iter.next(); for (StructureMembers.Member childMember : childStruct.getMembers()) { sm.addMember(childMember); // LOOK ?? } } } else { sm.addMember(m); } } this.members = sm; } } // StructureDataMunged
private void writeSequence(StructureDS s, StructureDataIterator sdataIter) throws IOException { indent.incr(); int count = 0; while (sdataIter.hasNext()) { out.format("%sSequence %s count=%d%n", indent, s.getShortName(), count++); StructureData sdata = sdataIter.next(); indent.incr(); for (StructureMembers.Member m : sdata.getMembers()) { Variable v = s.findVariable(m.getName()); if (m.getDataType().isString() || m.getDataType().isNumeric()) { writeVariable((VariableDS) v, sdata.getArray(m)); } else if (m.getDataType() == DataType.STRUCTURE) { StructureDS sds = (StructureDS) v; ArrayStructure data = (ArrayStructure) sdata.getArray(m); writeSequence(sds, data.getStructureDataIterator()); } else if (m.getDataType() == DataType.SEQUENCE) { SequenceDS sds = (SequenceDS) v; ArraySequence data = (ArraySequence) sdata.getArray(m); writeSequence(sds, data.getStructureDataIterator()); } } indent.decr(); } indent.decr(); }
private void processSequence(Structure s, StructureDataIterator sdataIter, Counter counter) throws IOException { indent.incr(); int count = 0; while (sdataIter.hasNext()) { if (showData) out.format("%sSequence %s count=%d%n", indent, s.getShortName(), count++); StructureData sdata = sdataIter.next(); indent.incr(); for (StructureMembers.Member m : sdata.getMembers()) { Variable v = s.findVariable(m.getName()); if (m.getDataType().isString() || m.getDataType().isNumeric()) { processVariable(v, sdata.getArray(m), counter); } else if (m.getDataType() == DataType.STRUCTURE) { Structure sds = (Structure) v; ArrayStructure data = (ArrayStructure) sdata.getArray(m); processSequence(sds, data.getStructureDataIterator(), counter); } else if (m.getDataType() == DataType.SEQUENCE) { Sequence sds = (Sequence) v; ArraySequence data = (ArraySequence) sdata.getArray(m); processSequence(sds, data.getStructureDataIterator(), counter); } } indent.decr(); } indent.decr(); }