@Override public NestedPointFeatureCollectionIterator getNestedPointFeatureCollectionIterator(int bufferSize) throws IOException { return new NestedPointFeatureCollectionIterator() { private StructureDataIterator sdataIter = ft.getRootFeatureDataIterator(-1); private StructureData nextSection; public SectionFeature next() throws IOException { Cursor cursor = new Cursor(ft.getNumberOfLevels()); cursor.recnum[2] = sdataIter.getCurrentRecno(); cursor.tableData[2] = nextSection; // obs(leaf) = 0, profile=1, section(root)=2 cursor.currentIndex = 2; ft.addParentJoin(cursor); // there may be parent joins return new StandardSectionFeature(cursor); } public boolean hasNext() throws IOException { while (true) { if (!sdataIter.hasNext()) return false; nextSection = sdataIter.next(); if (!ft.isFeatureMissing(nextSection)) break; } return true; } public void setBufferSize(int bytes) { } @Override public void finish() { sdataIter.finish(); } }; }
@Override public NestedPointFeatureCollectionIterator getNestedPointFeatureCollectionIterator(int bufferSize) throws IOException { return new NestedPointFeatureCollectionIterator() { private StructureDataIterator sdataIter = ft.getRootFeatureDataIterator(-1); private StructureData nextSection; public SectionFeature next() throws IOException { Cursor cursor = new Cursor(ft.getNumberOfLevels()); cursor.recnum[2] = sdataIter.getCurrentRecno(); cursor.tableData[2] = nextSection; // obs(leaf) = 0, profile=1, section(root)=2 cursor.currentIndex = 2; ft.addParentJoin(cursor); // there may be parent joins return new StandardSectionFeature(cursor, nextSection); } public boolean hasNext() throws IOException { while (true) { if (!sdataIter.hasNext()) return false; nextSection = sdataIter.next(); if (!ft.isFeatureMissing(nextSection)) break; } return true; } public void setBufferSize(int bytes) { } @Override public void finish() { sdataIter.finish(); } }; }
@Override public PointFeatureCollectionIterator getPointFeatureCollectionIterator() throws IOException { return new TrajCollectionIterator( ft.getRootFeatureDataIterator()); }
@Override public IOIterator<PointFeatureCollection> getCollectionIterator() throws IOException { return new ProfileIterator(ft.getRootFeatureDataIterator()); }
@Override public IOIterator<PointFeatureCollection> getCollectionIterator() throws IOException { return new TrajCollectionIterator( ft.getRootFeatureDataIterator()); }
@Override public PointFeatureCollectionIterator getPointFeatureCollectionIterator() throws IOException { return new ProfileIterator(ft.getRootFeatureDataIterator()); }
public PointFeatureCollectionIterator getPointFeatureCollectionIterator(int bufferSize) throws IOException { return new ProfileIterator( ft.getRootFeatureDataIterator(bufferSize)); }
public PointFeatureCollectionIterator getPointFeatureCollectionIterator(int bufferSize) throws IOException { return new TrajCollectionIterator( ft.getRootFeatureDataIterator(bufferSize)); }
public PointFeatureCollectionIterator getPointFeatureCollectionIterator(int bufferSize) throws IOException { return new ProfileIterator( ft.getRootFeatureDataIterator(bufferSize)); }
public PointFeatureCollectionIterator getPointFeatureCollectionIterator(int bufferSize) throws IOException { return new TrajCollectionIterator( ft.getRootFeatureDataIterator(bufferSize)); }
StationProfileIterator() throws IOException { sdataIter = ft.getRootFeatureDataIterator(); CollectionInfo info = getInfo(); if (!info.isComplete()) calcInfo = info; }
SectionIterator() throws IOException { sdataIter = ft.getRootFeatureDataIterator(); CollectionInfo info = getInfo(); if (!info.isComplete()) calcInfo = info; }