// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.data.osm;
/**
* Convenience class allowing to manage primitives in the dataset. Useful especially for tests
*
*/
public class DatasetFactory {
private final DataSet ds;
public DatasetFactory() {
ds = new DataSet();
}
public DatasetFactory(DataSet ds) {
this.ds = ds;
}
public Node getNode(long id) {
return (Node) ds.getPrimitiveById(id, OsmPrimitiveType.NODE);
}
public Way getWay(long id) {
return (Way) ds.getPrimitiveById(id, OsmPrimitiveType.WAY);
}
public Relation getRelation(long id) {
return (Relation) ds.getPrimitiveById(id, OsmPrimitiveType.RELATION);
}
public Node addNode(long id) {
return addNode(id, 0);
}
public Way addWay(long id) {
return addWay(id, 0);
}
public Relation addRelation(long id) {
return addRelation(id, 0);
}
public Node addNode(long id, int version) {
Node n = new Node(id, version);
ds.addPrimitive(n);
return n;
}
public Way addWay(long id, int version) {
Way w = new Way(id, version);
ds.addPrimitive(w);
return w;
}
public Relation addRelation(long id, int version) {
Relation e = new Relation(id, version);
ds.addPrimitive(e);
return e;
}
}