Changeset 10179 in josm for trunk/src/org/openstreetmap/josm/io/OsmChangeBuilder.java
- Timestamp:
- 2016-05-11T02:44:10+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/OsmChangeBuilder.java
r8840 r10179 13 13 /** 14 14 * Creates an OsmChange document from JOSM edits. 15 * See http://wiki.openstreetmap.org/index.php/OsmChange for a documentation of the 16 * OsmChange format. 17 * 15 * See http://wiki.openstreetmap.org/index.php/OsmChange for a documentation of the OsmChange format. 16 * @since 1071 18 17 */ 19 18 public class OsmChangeBuilder { 19 /** Default OSM API version */ 20 20 public static final String DEFAULT_API_VERSION = "0.6"; 21 21 22 22 private String currentMode; 23 private PrintWriter writer;24 private StringWriter swriter;25 private OsmWriter osmwriter;23 private final PrintWriter writer; 24 private final StringWriter swriter; 25 private final OsmWriter osmwriter; 26 26 private String apiVersion = DEFAULT_API_VERSION; 27 27 private boolean prologWritten; 28 28 29 /** 30 * Constructs a new {@code OsmChangeBuilder}. 31 * @param changeset changeset 32 */ 29 33 public OsmChangeBuilder(Changeset changeset) { 30 34 this(changeset, null /* default api version */); 31 35 } 32 36 37 /** 38 * Constructs a new {@code OsmChangeBuilder}. 39 * @param changeset changeset 40 * @param apiVersion OSM API version 41 */ 33 42 public OsmChangeBuilder(Changeset changeset, String apiVersion) { 34 43 this.apiVersion = apiVersion == null ? DEFAULT_API_VERSION : apiVersion; 35 writer = new PrintWriter(swriter = new StringWriter()); 44 swriter = new StringWriter(); 45 writer = new PrintWriter(swriter); 36 46 osmwriter = OsmWriterFactory.createOsmWriter(writer, false, apiVersion); 37 47 osmwriter.setChangeset(changeset); … … 90 100 */ 91 101 public void append(Collection<? extends IPrimitive> primitives) { 92 if (primitives == null) return;93 if (!prologWritten)94 throw new IllegalStateException(tr("Prolog of OsmChange document not written yet. Please write first."));102 if (primitives == null) 103 return; 104 checkProlog(); 95 105 for (IPrimitive p : primitives) { 96 106 write(p); 97 107 } 108 } 109 110 private void checkProlog() { 111 if (!prologWritten) 112 throw new IllegalStateException(tr("Prolog of OsmChange document not written yet. Please write first.")); 98 113 } 99 114 … … 107 122 */ 108 123 public void append(IPrimitive p) { 109 if (p == null) return;110 if (!prologWritten)111 throw new IllegalStateException(tr("Prolog of OsmChange document not written yet. Please write first."));124 if (p == null) 125 return; 126 checkProlog(); 112 127 write(p); 113 128 } … … 119 134 */ 120 135 public void finish() { 121 if (!prologWritten) 122 throw new IllegalStateException(tr("Prolog of OsmChange document not written yet. Please write first.")); 136 checkProlog(); 123 137 if (currentMode != null) { 124 138 writer.print("</"); … … 129 143 } 130 144 145 /** 146 * Returns XML document. 147 * @return XML document 148 */ 131 149 public String getDocument() { 132 150 return swriter.toString();
Note:
See TracChangeset
for help on using the changeset viewer.