001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.data.osm; 003 004 /** 005 * Convenience class allowing to manage primitives in the dataset. Useful especially for tests 006 * 007 */ 008 public 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 }