Changeset 5345 in josm for trunk/src/org/openstreetmap/josm/io/OsmChangeReader.java
- Timestamp:
- 2012-07-15T16:34:27+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/OsmChangeReader.java
r5266 r5345 4 4 5 5 import java.io.InputStream; 6 import java.util.Arrays; 6 7 7 8 import javax.xml.stream.XMLStreamConstants; … … 14 15 public class OsmChangeReader extends OsmReader { 15 16 17 public static final String[] ACTIONS = {"create", "modify", "delete"}; 18 16 19 /** 17 20 * constructor (for private and subclasses use only) … … 46 49 int event = parser.next(); 47 50 if (event == XMLStreamConstants.START_ELEMENT) { 48 if (parser.getLocalName().equals("create")) { 49 parseCreate(); 50 } else if (parser.getLocalName().equals("modify")) { 51 parseModify(); 52 } else if (parser.getLocalName().equals("delete")) { 53 parseDelete(); 51 if (Arrays.asList(ACTIONS).contains(parser.getLocalName())) { 52 parseCommon(parser.getLocalName()); 54 53 } else { 55 54 parseUnknown(); … … 61 60 } 62 61 63 private void parseDelete() throws XMLStreamException { 64 parseCommon(true); 65 } 66 67 private void parseModify() throws XMLStreamException { 68 parseCommon(false); 69 } 70 71 private void parseCreate() throws XMLStreamException { 72 parseCommon(false); 73 } 74 75 private void parseCommon(boolean deletePrimitive) throws XMLStreamException { 62 private void parseCommon(String action) throws XMLStreamException { 76 63 while (parser.hasNext()) { 77 64 int event = parser.next(); … … 87 74 parseUnknown(); 88 75 } 89 if (p != null && deletePrimitive) { 90 p.setDeleted(true); 76 if (p != null && action != null) { 77 if (action.equals("modify")) { 78 p.setModified(true); 79 } else if (action.equals("delete")) { 80 p.setDeleted(true); 81 } 91 82 } 92 83 } else if (event == XMLStreamConstants.END_ELEMENT) {
Note:
See TracChangeset
for help on using the changeset viewer.
