Hi,

There are two structures

OsmPrimitive / Node / Way / Relation

and

PrimitiveData / NodeData / WayData / RelationData.

Both have much in common, however, the class trees are unrelated at the moment. 
In order to avoid code duplication when it really doesn't matter if you have an 
object from the 1st or from the 2nd category, I put common features to an 
interface and added an abstract base class [1,2]. The above classes can be 
replaced by the respective interface

 IPrimitive / INode / IWay / IRelation

when only common functionality is needed. Commit [3] shows, how this would look 
in practice: In my use case, I'd like to upload PrimitiveData objects without 
converting them to OsmPrimitive first.

Haven't checked the history stuff, maybe this can be consolidated as well, 
somehow.

[1] https://github.com/bastik/josm/commit/a91ea53
[2] https://github.com/bastik/josm/commit/780d186
[3] https://github.com/bastik/josm/commit/7b1d245

Paul

_______________________________________________
josm-dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/josm-dev

Reply via email to