if (isReadFull() ||primitiveType.equals(OsmPrimitiveType.NODE)) {
for (Way way: waysToCheck) {
if (!way.isNew() && way.hasIncompleteNodes()) {
OsmServerObjectReader reader = new OsmServerObjectReader(way.getId(), OsmPrimitiveType.from(way), true /* read full */);
DataSet wayDs = reader.parseOsm(progressMonitor.createSubTaskMonitor(1, false));
DataSetMerger visitor = new DataSetMerger(ds, wayDs);
visitor.merge();
}
}
}
if (isReadFull()) {
Collection<Relation> relationsToCheck = new ArrayList<>(ds.getRelations());
for (Relation relation: relationsToCheck) {
if (!relation.isNew() && relation.hasIncompleteMembers()) {
OsmServerObjectReader reader = new OsmServerObjectReader(relation.getId(), OsmPrimitiveType.from(relation), true /* read full */);
DataSet wayDs = reader.parseOsm(progressMonitor.createSubTaskMonitor(1, false));
DataSetMerger visitor = new DataSetMerger(ds, wayDs);
visitor.merge();
}
}
}
return ds;
} finally {