001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm;
003
004/**
005 * Convenience class allowing to manage primitives in the dataset. Useful especially for tests
006 *
007 */
008public class DatasetFactory {
009
010    private final DataSet ds;
011
012    public DatasetFactory() {
013        ds = new DataSet();
014    }
015
016    public DatasetFactory(DataSet ds) {
017        this.ds = ds;
018    }
019
020    public Node getNode(long id) {
021        return (Node) ds.getPrimitiveById(id, OsmPrimitiveType.NODE);
022    }
023
024    public Way getWay(long id) {
025        return (Way) ds.getPrimitiveById(id, OsmPrimitiveType.WAY);
026    }
027
028    public Relation getRelation(long id) {
029        return (Relation) ds.getPrimitiveById(id, OsmPrimitiveType.RELATION);
030    }
031
032    public Node addNode(long id) {
033        return addNode(id, 0);
034    }
035
036    public Way addWay(long id) {
037        return addWay(id, 0);
038    }
039
040    public Relation addRelation(long id) {
041        return addRelation(id, 0);
042    }
043
044    public Node addNode(long id, int version) {
045        Node n = new Node(id, version);
046        ds.addPrimitive(n);
047        return n;
048    }
049
050    public Way addWay(long id, int version) {
051        Way w = new Way(id, version);
052        ds.addPrimitive(w);
053        return w;
054    }
055
056    public Relation addRelation(long id, int version) {
057        Relation e = new Relation(id, version);
058        ds.addPrimitive(e);
059        return e;
060    }
061
062}