[josm-dev] [PATCH 01/26] Enhance OsmPrimitive a bit
Dave Hansen
dave at sr71.net
Tue Apr 29 03:02:43 BST 2008
1. allow .delete() to be overridden
2. Clean up .equals() to make it more readable
3. Let .realEqual() work with a single OsmPrimitive argument
4. include .mayDelete() method for use with ConditionalDeleteCommand
---
core-dave/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java | 13 ++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff -puN src/org/openstreetmap/josm/data/osm/OsmPrimitive.java~osmprim src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
--- core/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java~osmprim 2008-04-28 18:59:23.000000000 -0700
+++ core-dave/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java 2008-04-28 18:59:23.000000000 -0700
@@ -131,7 +131,7 @@ abstract public class OsmPrimitive imple
*/
abstract public void visit(Visitor visitor);
- public final void delete(boolean deleted) {
+ public void delete(boolean deleted) {
this.deleted = deleted;
selected = false;
modified = true;
@@ -160,7 +160,9 @@ abstract public class OsmPrimitive imple
* An primitive is equal to its incomplete counter part.
*/
@Override public final boolean equals(Object obj) {
- if (obj == null || getClass() != obj.getClass() || id == 0 || ((OsmPrimitive)obj).id == 0)
+ if (obj == null || getClass() != obj.getClass())
+ return super.equals(obj);
+ if (id == 0 && ((OsmPrimitive)obj).id == 0)
return super.equals(obj);
return id == ((OsmPrimitive)obj).id;
}
@@ -259,7 +261,14 @@ abstract public class OsmPrimitive imple
(semanticOnly || (visible == osm.visible)) &&
(keys == null ? osm.keys==null : keys.equals(osm.keys));
}
+
+ public boolean realEqual(OsmPrimitive osm) {
+ return this.realEqual(osm, false);
+ }
+ public boolean mayDelete() {
+ return false;
+ }
public String getTimeStr() {
return timestamp == null ? null : new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp);
}
_
More information about the josm-dev
mailing list