Index: trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 1640)
@@ -89,5 +89,5 @@
 
         Node n = new Node(Main.proj.eastNorth2latlon(result));
-        if (n.coor.isOutSideWorld()) {
+        if (n.getCoor().isOutSideWorld()) {
             JOptionPane.showMessageDialog(Main.parent, tr("Some of the nodes are (almost) in the line"));
             return null;
@@ -163,7 +163,7 @@
                 } else {
 
-                    center = ((Node) nodes.toArray()[way.nodes.contains(nodes.toArray()[0]) ? 1 : 0]).eastNorth;
+                    center = ((Node) nodes.toArray()[way.nodes.contains(nodes.toArray()[0]) ? 1 : 0]).getEastNorth();
                     if (nodes.size() == 2)
-                        radius = distance(((Node) nodes.toArray()[0]).eastNorth, ((Node) nodes.toArray()[1]).eastNorth);
+                        radius = distance(((Node) nodes.toArray()[0]).getEastNorth(), ((Node) nodes.toArray()[1]).getEastNorth());
                 }
                 nodes = new LinkedList<Node>();
@@ -191,5 +191,5 @@
                 n1 = n0;
                 n0 = n;
-                EastNorth cc = circumcenter(n0.eastNorth, n1.eastNorth, n2.eastNorth);
+                EastNorth cc = circumcenter(n0.getEastNorth(), n1.getEastNorth(), n2.getEastNorth());
                 if (cc == null)
                     return;
@@ -209,5 +209,5 @@
         if (radius == 0) {
             for (Node n : nodes) {
-                radius += distance(center, n.eastNorth);
+                radius += distance(center, n.getEastNorth());
             }
             radius = radius / nodes.size();
@@ -220,7 +220,7 @@
         if (regular) { // Make a regular polygon
             double angle = Math.PI * 2 / nodes.size();
-            pc = new PolarCoor(((Node) nodes.toArray()[0]).eastNorth, center, 0);
-
-            if (pc.angle > (new PolarCoor(((Node) nodes.toArray()[1]).eastNorth, center, 0).angle))
+            pc = new PolarCoor(((Node) nodes.toArray()[0]).getEastNorth(), center, 0);
+
+            if (pc.angle > (new PolarCoor(((Node) nodes.toArray()[1]).getEastNorth(), center, 0).angle))
                 angle *= -1;
 
@@ -228,13 +228,13 @@
             for (Node n : nodes) {
                 EastNorth no = pc.toEastNorth();
-                cmds.add(new MoveCommand(n, no.east() - n.eastNorth.east(), no.north() - n.eastNorth.north()));
+                cmds.add(new MoveCommand(n, no.east() - n.getEastNorth().east(), no.north() - n.getEastNorth().north()));
                 pc.angle += angle;
             }
         } else { // Move each node to that distance from the centre.
             for (Node n : nodes) {
-                pc = new PolarCoor(n.eastNorth, center, 0);
+                pc = new PolarCoor(n.getEastNorth(), center, 0);
                 pc.radius = radius;
                 EastNorth no = pc.toEastNorth();
-                cmds.add(new MoveCommand(n, no.east() - n.eastNorth.east(), no.north() - n.eastNorth.north()));
+                cmds.add(new MoveCommand(n, no.east() - n.getEastNorth().east(), no.north() - n.getEastNorth().north()));
             }
         }
Index: trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 1640)
@@ -71,5 +71,5 @@
             itnodes.remove(n);
             for (Node m : itnodes) {
-                double dist = Math.sqrt(n.eastNorth.distance(m.eastNorth));
+                double dist = Math.sqrt(n.getEastNorth().distance(m.getEastNorth()));
                 if (dist > distance) {
                     nodea = n;
@@ -85,8 +85,8 @@
 
         // Find out co-ords of A and B
-        double ax = nodea.eastNorth.east();
-        double ay = nodea.eastNorth.north();
-        double bx = nodeb.eastNorth.east();
-        double by = nodeb.eastNorth.north();
+        double ax = nodea.getEastNorth().east();
+        double ay = nodea.getEastNorth().north();
+        double bx = nodeb.getEastNorth().east();
+        double by = nodeb.getEastNorth().north();
 
         // A list of commands to do
@@ -96,6 +96,6 @@
         for (Node n : nodes) {
             // Get existing co-ords of node to move
-            double nx = n.eastNorth.east();
-            double ny = n.eastNorth.north();
+            double nx = n.getEastNorth().east();
+            double ny = n.getEastNorth().north();
 
             if (ax == bx) {
@@ -110,5 +110,5 @@
                 double c1 = ay - (ax * m1);
                 double m2 = (-1) / m1;
-                double c2 = n.eastNorth.north() - (n.eastNorth.east() * m2);
+                double c2 = n.getEastNorth().north() - (n.getEastNorth().east() * m2);
 
                 nx = (c2 - c1) / (m1 - m2);
@@ -117,5 +117,5 @@
 
             // Add the command to move the node to its new position.
-            cmds.add(new MoveCommand(n, nx - n.eastNorth.east(), ny - n.eastNorth.north() ));
+            cmds.add(new MoveCommand(n, nx - n.getEastNorth().east(), ny - n.getEastNorth().north() ));
         }
 
Index: trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 1640)
@@ -105,12 +105,12 @@
         // let's get some shorter names
         Node   n1 = ((Node)nodes.toArray()[0]);
-        double x1 = n1.eastNorth.east();
-        double y1 = n1.eastNorth.north();
+        double x1 = n1.getEastNorth().east();
+        double y1 = n1.getEastNorth().north();
         Node   n2 = ((Node)nodes.toArray()[1]);
-        double x2 = n2.eastNorth.east();
-        double y2 = n2.eastNorth.north();
+        double x2 = n2.getEastNorth().east();
+        double y2 = n2.getEastNorth().north();
         Node   n3 = ((Node)nodes.toArray()[2]);
-        double x3 = n3.eastNorth.east();
-        double y3 = n3.eastNorth.north();
+        double x3 = n3.getEastNorth().east();
+        double y3 = n3.getEastNorth().north();
 
         // calculate the center (xc/yc)
Index: trunk/src/org/openstreetmap/josm/actions/DistributeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 1640)
@@ -70,5 +70,5 @@
             itnodes.remove(n);
             for (Node m : itnodes) {
-                double dist = Math.sqrt(n.eastNorth.distance(m.eastNorth));
+                double dist = Math.sqrt(n.getEastNorth().distance(m.getEastNorth()));
                 if (dist > distance) {
                     nodea = n;
@@ -84,8 +84,8 @@
 
         // Find out co-ords of A and B
-        double ax = nodea.eastNorth.east();
-        double ay = nodea.eastNorth.north();
-        double bx = nodeb.eastNorth.east();
-        double by = nodeb.eastNorth.north();
+        double ax = nodea.getEastNorth().east();
+        double ay = nodea.getEastNorth().north();
+        double bx = nodeb.getEastNorth().east();
+        double by = nodeb.getEastNorth().north();
 
         // A list of commands to do
@@ -104,5 +104,5 @@
             distance = 0.0;
             for (Node n : nodes) {
-                double dist = Math.sqrt(nodeb.eastNorth.distance(n.eastNorth));
+                double dist = Math.sqrt(nodeb.getEastNorth().distance(n.getEastNorth()));
                 if (dist > distance) {
                     s = n;
@@ -112,6 +112,6 @@
 
             // First move the node to A's position, then move it towards B
-            double dx = ax - s.eastNorth.east() + (bx-ax)*pos/num;
-            double dy = ay - s.eastNorth.north() + (by-ay)*pos/num;
+            double dx = ax - s.getEastNorth().east() + (bx-ax)*pos/num;
+            double dy = ay - s.getEastNorth().north() + (by-ay)*pos/num;
 
             cmds.add(new MoveCommand(s, dx, dy));
Index: trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 1640)
@@ -37,5 +37,5 @@
 
         List<WaySegment> wss = Main.map.mapView.getNearestWaySegments(
-            Main.map.mapView.getPoint(node.eastNorth));
+            Main.map.mapView.getPoint(node.getEastNorth()));
         HashMap<Way, List<Integer>> insertPoints = new HashMap<Way, List<Integer>>();
         for (WaySegment ws : wss) {
Index: trunk/src/org/openstreetmap/josm/actions/MoveAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 1640)
@@ -99,5 +99,5 @@
 
         for (Node n : affectedNodes) {
-            if (n.coor.isOutSideWorld()) {
+            if (n.getCoor().isOutSideWorld()) {
                 // Revert move
                 ((MoveCommand) c).moveAgain(-distx, -disty);
Index: trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1640)
@@ -81,6 +81,6 @@
                 int i2 = (i1+1) % (way.nodes.size()-1);
                 int i3 = (i1+2) % (way.nodes.size()-1);
-                double angle1  =Math.abs(way.nodes.get(i1).eastNorth.heading(way.nodes.get(i2).eastNorth));
-                double angle2 = Math.abs(way.nodes.get(i2).eastNorth.heading(way.nodes.get(i3).eastNorth));
+                double angle1  =Math.abs(way.nodes.get(i1).getEastNorth().heading(way.nodes.get(i2).getEastNorth()));
+                double angle2 = Math.abs(way.nodes.get(i2).getEastNorth().heading(way.nodes.get(i3).getEastNorth()));
                 double delta = Math.abs(angle2 - angle1);
                 while(delta > Math.PI) delta -= Math.PI;
@@ -117,5 +117,5 @@
             // When selection contains two nodes, use the nodes to compute a direction
             // to align all ways to
-            align_to_heading = normalize_angle(dirnodes.get(0).eastNorth.heading(dirnodes.get(1).eastNorth));
+            align_to_heading = normalize_angle(dirnodes.get(0).getEastNorth().heading(dirnodes.get(1).getEastNorth()));
             use_dirnodes = true;
         }
@@ -131,5 +131,5 @@
             EastNorth en[] = new EastNorth[sides];
             for (int i=0; i < sides; i++) {
-                en[i] = new EastNorth(way.nodes.get(i).eastNorth.east(), way.nodes.get(i).eastNorth.north());
+                en[i] = new EastNorth(way.nodes.get(i).getEastNorth().east(), way.nodes.get(i).getEastNorth().north());
             }
 
@@ -142,6 +142,6 @@
                 double weights[] = new double[sides];
                 for (int i=0; i < sides; i++) {
-                    headings[i] = normalize_angle(way.nodes.get(i).eastNorth.heading(way.nodes.get(i+1).eastNorth));
-                    weights[i] = way.nodes.get(i).eastNorth.distance(way.nodes.get(i+1).eastNorth);
+                    headings[i] = normalize_angle(way.nodes.get(i).getEastNorth().heading(way.nodes.get(i+1).getEastNorth()));
+                    weights[i] = way.nodes.get(i).getEastNorth().distance(way.nodes.get(i+1).getEastNorth());
                 }
 
@@ -232,7 +232,7 @@
 
                 LatLon ill = Main.proj.eastNorth2latlon(intersection);
-                if (!ill.equalsEpsilon(n.coor)) {
-                    double dx = intersection.east()-n.eastNorth.east();
-                    double dy = intersection.north()-n.eastNorth.north();
+                if (!ill.equalsEpsilon(n.getCoor())) {
+                    double dx = intersection.east()-n.getEastNorth().east();
+                    double dy = intersection.north()-n.getEastNorth().north();
                     cmds.add(new MoveCommand(n, dx, dy));
                 }
Index: trunk/src/org/openstreetmap/josm/actions/PasteAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 1640)
@@ -43,6 +43,6 @@
         double maxEast = -1E100, minEast = 1E100, maxNorth = -1E100, minNorth = 1E100;
         for (Node n : pasteBuffer.nodes) {
-            double east = n.eastNorth.east();
-            double north = n.eastNorth.north();
+            double east = n.getEastNorth().east();
+            double north = n.getEastNorth().north();
             if (east > maxEast) { maxEast = east; }
             if (east < minEast) { minEast = east; }
@@ -70,5 +70,5 @@
             nnew.id = 0;
             if (Main.main.editLayer() == source) {
-                nnew.setEastNorth(nnew.eastNorth.add(offsetEast, offsetNorth));
+                nnew.setEastNorth(nnew.getEastNorth().add(offsetEast, offsetNorth));
             }
             map.put(n, nnew);
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 1640)
@@ -332,5 +332,5 @@
             // no node found in clicked area
             n = new Node(Main.map.mapView.getLatLon(e.getX(), e.getY()));
-            if (n.coor.isOutSideWorld()) {
+            if (n.getCoor().isOutSideWorld()) {
                 JOptionPane.showMessageDialog(Main.parent,
                     tr("Cannot add a node outside of the world."));
@@ -647,5 +647,5 @@
             // user clicked on node
             if (selection.isEmpty()) return;
-            currentMouseEastNorth = currentMouseNode.eastNorth;
+            currentMouseEastNorth = currentMouseNode.getEastNorth();
             mouseOnExistingNode = currentMouseNode;
         } else {
@@ -690,8 +690,8 @@
         // find out the distance, in metres, between the base point and the mouse cursor
         LatLon mouseLatLon = Main.proj.eastNorth2latlon(currentMouseEastNorth);
-        distance = currentBaseNode.coor.greatCircleDistance(mouseLatLon);
-        double hdg = Math.toDegrees(currentBaseNode.coor.heading(mouseLatLon));
+        distance = currentBaseNode.getCoor().greatCircleDistance(mouseLatLon);
+        double hdg = Math.toDegrees(currentBaseNode.getCoor().heading(mouseLatLon));
         if (previousNode != null) {
-            angle = hdg - Math.toDegrees(previousNode.coor.heading(currentBaseNode.coor));
+            angle = hdg - Math.toDegrees(previousNode.getCoor().heading(currentBaseNode.getCoor()));
             if (angle < 0) angle += 360;
         }
@@ -772,9 +772,9 @@
             Iterator<Pair<Node,Node>> i = segs.iterator();
             Pair<Node,Node> seg = i.next();
-            EastNorth A = seg.a.eastNorth;
-            EastNorth B = seg.b.eastNorth;
+            EastNorth A = seg.a.getEastNorth();
+            EastNorth B = seg.b.getEastNorth();
             seg = i.next();
-            EastNorth C = seg.a.eastNorth;
-            EastNorth D = seg.b.eastNorth;
+            EastNorth C = seg.a.getEastNorth();
+            EastNorth D = seg.b.getEastNorth();
 
             double u=det(B.east() - A.east(), B.north() - A.north(), C.east() - D.east(), C.north() - D.north());
@@ -800,5 +800,5 @@
             // fall through to default action.
             // (for semi-parallel lines, intersection might be miles away!)
-            if (Main.map.mapView.getPoint(n.eastNorth).distance(Main.map.mapView.getPoint(intersection)) < snapToIntersectionThreshold) {
+            if (Main.map.mapView.getPoint(n.getEastNorth()).distance(Main.map.mapView.getPoint(intersection)) < snapToIntersectionThreshold) {
                 n.setEastNorth(intersection);
                 return;
@@ -806,8 +806,8 @@
 
         default:
-            EastNorth P = n.eastNorth;
+            EastNorth P = n.getEastNorth();
             seg = segs.iterator().next();
-            A = seg.a.eastNorth;
-            B = seg.b.eastNorth;
+            A = seg.a.getEastNorth();
+            B = seg.b.getEastNorth();
             double a = P.distanceSq(B);
             double b = P.distanceSq(A);
@@ -840,5 +840,5 @@
         g2.setStroke(new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
         GeneralPath b = new GeneralPath();
-        Point p1=mv.getPoint(currentBaseNode.eastNorth);
+        Point p1=mv.getPoint(currentBaseNode.getEastNorth());
         Point p2=mv.getPoint(currentMouseEastNorth);
 
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 1640)
@@ -155,6 +155,6 @@
             Node n2 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex + 1);
 
-            EastNorth en1 = n1.eastNorth;
-            EastNorth en2 = n2.eastNorth;
+            EastNorth en1 = n1.getEastNorth();
+            EastNorth en2 = n2.getEastNorth();
             EastNorth en3 = mv.getEastNorth(mousePos.x, mousePos.y);
 
@@ -234,7 +234,7 @@
             Node n1 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex);
             Node n2 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex+1);
-            EastNorth en3 = n2.eastNorth.add(xoff, yoff);
+            EastNorth en3 = n2.getEastNorth().add(xoff, yoff);
             Node n3 = new Node(Main.proj.eastNorth2latlon(en3));
-            EastNorth en4 = n1.eastNorth.add(xoff, yoff);
+            EastNorth en4 = n1.getEastNorth().add(xoff, yoff);
             Node n4 = new Node(Main.proj.eastNorth2latlon(en4));
             Way wnew = new Way(selectedSegment.way);
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1640)
@@ -224,5 +224,5 @@
 
                 for (Node n : affectedNodes) {
-                    if (n.coor.isOutSideWorld()) {
+                    if (n.getCoor().isOutSideWorld()) {
                         // Revert move
                         ((MoveCommand) c).moveAgain(-dx, -dy);
@@ -280,6 +280,6 @@
                 {
                     Way w = (Way)osm;
-                    Point p1 = c.getPoint(w.nodes.get(nearestWS.lowerIndex).eastNorth);
-                    Point p2 = c.getPoint(w.nodes.get(nearestWS.lowerIndex+1).eastNorth);
+                    Point p1 = c.getPoint(w.nodes.get(nearestWS.lowerIndex).getEastNorth());
+                    Point p2 = c.getPoint(w.nodes.get(nearestWS.lowerIndex+1).getEastNorth());
                     if(SimplePaintVisitor.isLargeSegment(p1, p2, Main.pref.getInteger("mappaint.node.virtual-space", 70)))
                     {
Index: trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 1640)
@@ -340,5 +340,5 @@
                 if (osm instanceof Node && osm.id != 0) {
                     Node n = (Node) osm;
-                    if (!a.contains(n.coor)) {
+                    if (!a.contains(n.getCoor())) {
                         JPanel msg = new JPanel(new GridBagLayout());
                         msg.add(new JLabel(
Index: trunk/src/org/openstreetmap/josm/command/MoveCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 1640)
@@ -70,6 +70,6 @@
         for (Node n : this.objects) {
             OldState os = new OldState();
-            os.eastNorth = n.eastNorth;
-            os.latlon = n.coor;
+            os.eastNorth = n.getEastNorth();
+            os.latlon = n.getCoor();
             os.modified = n.modified;
             oldState.add(os);
@@ -87,5 +87,5 @@
     public void moveAgain(double x, double y) {
         for (Node n : objects) {
-            n.setEastNorth(n.eastNorth.add(x, y));
+            n.setEastNorth(n.getEastNorth().add(x, y));
         }
         this.x += x;
@@ -95,5 +95,5 @@
     @Override public boolean executeCommand() {
         for (Node n : objects) {
-            n.setEastNorth(n.eastNorth.add(x, y));
+            n.setEastNorth(n.getEastNorth().add(x, y));
             n.modified = true;
         }
Index: trunk/src/org/openstreetmap/josm/command/RotateCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/RotateCommand.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/command/RotateCommand.java	(revision 1640)
@@ -64,6 +64,6 @@
         for (Node n : this.objects) {
             MoveCommand.OldState os = new MoveCommand.OldState();
-            os.eastNorth = n.eastNorth;
-            os.latlon = n.coor;
+            os.eastNorth = n.getEastNorth();
+            os.latlon = n.getCoor();
             os.modified = n.modified;
             oldState.put(n, os);
Index: trunk/src/org/openstreetmap/josm/data/conflict/PositionConflict.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/conflict/PositionConflict.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/data/conflict/PositionConflict.java	(revision 1640)
@@ -10,9 +10,9 @@
 
     @Override public boolean hasConflict(OsmPrimitive key, OsmPrimitive value) {
-        return key instanceof Node && !((Node)key).coor.equals(((Node)value).coor);
+        return key instanceof Node && !((Node)key).getCoor().equals(((Node)value).getCoor());
     }
 
     @Override protected String str(OsmPrimitive osm) {
-        return osm instanceof Node ? ((Node)osm).coor.lat()+", "+((Node)osm).coor.lon() : null;
+        return osm instanceof Node ? ((Node)osm).getCoor().lat()+", "+((Node)osm).getCoor().lon() : null;
     }
 
@@ -23,5 +23,5 @@
     @Override public void apply(OsmPrimitive target, OsmPrimitive other) {
         if (target instanceof Node) {
-            ((Node)target).setEastNorth(((Node)other).eastNorth);
+            ((Node)target).setEastNorth(((Node)other).getEastNorth());
             int newversion = Math.max(target.version, other.version);
             // set version on "other" as well in case user decides to keep local
Index: trunk/src/org/openstreetmap/josm/data/osm/Node.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 1640)
@@ -20,19 +20,27 @@
     public LatLon coor;
     public volatile EastNorth eastNorth;
-        
-    public void setCoor(LatLon coor) {
+
+    public final void setCoor(LatLon coor) {
         this.coor = coor;
-        this.eastNorth = Main.proj.latlon2eastNorth(coor); 
+        this.eastNorth = Main.proj.latlon2eastNorth(coor);
     }
-        
-    public void setEastNorth(EastNorth eastNorth) {
+
+    public final LatLon getCoor() {
+        return coor;
+    }
+
+    public final void setEastNorth(EastNorth eastNorth) {
        this.eastNorth = eastNorth;
        this.coor = Main.proj.eastNorth2latlon(eastNorth);
     }
-    
-    public void setEastNorth(double east, double north) {
+
+    public final void setEastNorth(double east, double north) {
         this.setEastNorth(new EastNorth(east, north));
     }
-    
+
+    public final EastNorth getEastNorth() {
+        return eastNorth;
+    }
+
     private static CoordinateFormat mCord;
 
@@ -107,3 +115,4 @@
         return name;
     }
+
 }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java	(revision 1640)
@@ -22,5 +22,5 @@
 
     public void visit(Node n) {
-        visit(n.eastNorth);
+        visit(n.getEastNorth());
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1640)
@@ -134,8 +134,8 @@
     public void visit(Node n) {
         /* check, if the node is visible at all */
-        if((n.eastNorth.east()  > maxEN.east() ) ||
-           (n.eastNorth.north() > maxEN.north()) ||
-           (n.eastNorth.east()  < minEN.east() ) ||
-           (n.eastNorth.north() < minEN.north()))
+        if((n.getEastNorth().east()  > maxEN.east() ) ||
+           (n.getEastNorth().north() > maxEN.north()) ||
+           (n.getEastNorth().east()  < minEN.east() ) ||
+           (n.getEastNorth().north() < minEN.north()))
         {
             n.mappaintVisibleCode = viewid;
@@ -180,8 +180,8 @@
         for (Node n : w.nodes)
         {
-            if(n.eastNorth.east() > maxx) maxx = n.eastNorth.east();
-            if(n.eastNorth.north() > maxy) maxy = n.eastNorth.north();
-            if(n.eastNorth.east() < minx) minx = n.eastNorth.east();
-            if(n.eastNorth.north() < miny) miny = n.eastNorth.north();
+            if(n.getEastNorth().east() > maxx) maxx = n.getEastNorth().east();
+            if(n.getEastNorth().north() > maxy) maxy = n.getEastNorth().north();
+            if(n.getEastNorth().east() < minx) minx = n.getEastNorth().east();
+            if(n.getEastNorth().north() < miny) miny = n.getEastNorth().north();
         }
 
@@ -650,6 +650,6 @@
         }
 
-        Point pFrom = nc.getPoint(fromNode.eastNorth);
-        Point pVia = nc.getPoint(viaNode.eastNorth);
+        Point pFrom = nc.getPoint(fromNode.getEastNorth());
+        Point pVia = nc.getPoint(viaNode.getEastNorth());
 
         //if(restrictionDebug) {
@@ -887,5 +887,5 @@
                         for (Node n : w.nodes)
                         {
-                            p = nc.getPoint(n.eastNorth);
+                            p = nc.getPoint(n.getEastNorth());
                             poly.addPoint(p.x,p.y);
                         }
@@ -941,10 +941,10 @@
                     for (Node n : wInner.nodes)
                     {
-                        Point pInner = nc.getPoint(n.eastNorth);
+                        Point pInner = nc.getPoint(n.getEastNorth());
                         polygon.addPoint(pInner.x,pInner.y);
                     }
                     if(!wInner.isClosed())
                     {
-                        Point pInner = nc.getPoint(wInner.nodes.get(0).eastNorth);
+                        Point pInner = nc.getPoint(wInner.nodes.get(0).getEastNorth());
                         polygon.addPoint(pInner.x,pInner.y);
                     }
@@ -1065,5 +1065,5 @@
         for (Node n : w.nodes)
         {
-            Point p = nc.getPoint(n.eastNorth);
+            Point p = nc.getPoint(n.getEastNorth());
             polygon.addPoint(p.x,p.y);
         }
@@ -1088,5 +1088,5 @@
 
     protected void drawNode(Node n, ImageIcon icon, boolean annotate, Boolean selected) {
-        Point p = nc.getPoint(n.eastNorth);
+        Point p = nc.getPoint(n.getEastNorth());
         if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth()) || (p.y > nc.getHeight())) return;
 
@@ -1130,6 +1130,6 @@
             displaySegments(col, width, dashed, dashedColor);
         }
-        Point p1 = nc.getPoint(n1.eastNorth);
-        Point p2 = nc.getPoint(n2.eastNorth);
+        Point p1 = nc.getPoint(n1.getEastNorth());
+        Point p2 = nc.getPoint(n2.getEastNorth());
 
         if (!isSegmentVisible(p1, p2)) {
@@ -1209,5 +1209,5 @@
     public void drawNode(Node n, Color color, int size, int radius, boolean fill) {
         if (isZoomOk(null) && size > 1) {
-            Point p = nc.getPoint(n.eastNorth);
+            Point p = nc.getPoint(n.getEastNorth());
             if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth())
                     || (p.y > nc.getHeight()))
@@ -1456,6 +1456,6 @@
      */
     protected void drawOrderNumber(Node n1, Node n2, int orderNumber) {
-        Point p1 = nc.getPoint(n1.eastNorth);
-        Point p2 = nc.getPoint(n2.eastNorth);
+        Point p1 = nc.getPoint(n1.getEastNorth());
+        Point p2 = nc.getPoint(n2.getEastNorth());
         drawOrderNumber(p1, p2, orderNumber);
     }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java	(revision 1640)
@@ -163,5 +163,5 @@
 
     private static boolean realMatch(Node n1, Node n2) {
-        return n1.coor.equalsEpsilon(n2.coor);
+        return n1.getCoor().equalsEpsilon(n2.getCoor());
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 1640)
@@ -271,8 +271,8 @@
         Iterator<Node> it = w.nodes.iterator();
         if (it.hasNext()) {
-            Point lastP = nc.getPoint(it.next().eastNorth);
+            Point lastP = nc.getPoint(it.next().getEastNorth());
             while(it.hasNext())
             {
-                Point p = nc.getPoint(it.next().eastNorth);
+                Point p = nc.getPoint(it.next().getEastNorth());
                 if(isSegmentVisible(lastP, p) && isLargeSegment(lastP, p, virtualNodeSpace))
                 {
@@ -321,7 +321,7 @@
         Iterator<Node> it = w.nodes.iterator();
         if (it.hasNext()) {
-            Point lastP = nc.getPoint(it.next().eastNorth);
+            Point lastP = nc.getPoint(it.next().getEastNorth());
             for (int orderNumber = 1; it.hasNext(); orderNumber++) {
-                Point p = nc.getPoint(it.next().eastNorth);
+                Point p = nc.getPoint(it.next().getEastNorth());
                 drawSegment(lastP, p, wayColor,
                     showOnlyHeadArrowOnly ? !it.hasNext() : showThisDirectionArrow);
@@ -352,5 +352,5 @@
 
             if (m.member instanceof Node) {
-                Point p = nc.getPoint(((Node) m.member).eastNorth);
+                Point p = nc.getPoint(((Node) m.member).getEastNorth());
                 if (p.x < 0 || p.y < 0
                     || p.x > nc.getWidth() || p.y > nc.getHeight()) continue;
@@ -363,5 +363,5 @@
                 for (Node n : ((Way) m.member).nodes) {
                     if (n.incomplete || n.deleted) continue;
-                    Point p = nc.getPoint(n.eastNorth);
+                    Point p = nc.getPoint(n.getEastNorth());
                     if (first) {
                         path.moveTo(p.x, p.y);
@@ -410,5 +410,5 @@
     public void drawNode(Node n, Color color, int size, int radius, boolean fill) {
         if (size > 1) {
-            Point p = nc.getPoint(n.eastNorth);
+            Point p = nc.getPoint(n.getEastNorth());
             if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth())
                     || (p.y > nc.getHeight()))
Index: trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 1640)
@@ -158,5 +158,5 @@
             if (n.deleted || n.incomplete)
                 continue;
-            Point sp = getPoint(n.eastNorth);
+            Point sp = getPoint(n.getEastNorth());
             double dist = p.distanceSq(sp);
             if (dist < minDistanceSq) {
@@ -193,6 +193,6 @@
                 }
 
-                Point A = getPoint(lastN.eastNorth);
-                Point B = getPoint(n.eastNorth);
+                Point A = getPoint(lastN.getEastNorth());
+                Point B = getPoint(n.getEastNorth());
                 double c = A.distanceSq(B);
                 double a = p.distanceSq(B);
@@ -302,6 +302,6 @@
                     continue;
                 }
-                Point A = getPoint(lastN.eastNorth);
-                Point B = getPoint(n.eastNorth);
+                Point A = getPoint(lastN.getEastNorth());
+                Point B = getPoint(n.getEastNorth());
                 double c = A.distanceSq(B);
                 double a = p.distanceSq(B);
@@ -317,5 +317,5 @@
         for (Node n : getData().nodes) {
             if (!n.deleted && !n.incomplete
-                    && getPoint(n.eastNorth).distanceSq(p) < snapDistance) {
+                    && getPoint(n.getEastNorth()).distanceSq(p) < snapDistance) {
                 nearest.add(n);
             }
@@ -336,5 +336,5 @@
         for (Node n : getData().nodes) {
             if (!n.deleted && !n.incomplete
-                    && getPoint(n.eastNorth).distanceSq(p) < snapDistance) {
+                    && getPoint(n.getEastNorth()).distanceSq(p) < snapDistance) {
                 nearest.add(n);
             }
Index: trunk/src/org/openstreetmap/josm/gui/SelectionManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 1640)
@@ -280,5 +280,5 @@
             // nodes
             for (Node n : nc.getData().nodes) {
-                if (!n.deleted && !n.incomplete && r.contains(nc.getPoint(n.eastNorth)))
+                if (!n.deleted && !n.incomplete && r.contains(nc.getPoint(n.getEastNorth())))
                     selection.add(n);
             }
@@ -290,5 +290,5 @@
                 if (alt) {
                     for (Node n : w.nodes) {
-                        if (!n.incomplete && r.contains(nc.getPoint(n.eastNorth))) {
+                        if (!n.incomplete && r.contains(nc.getPoint(n.getEastNorth()))) {
                             selection.add(w);
                             break;
@@ -298,5 +298,5 @@
                     boolean allIn = true;
                     for (Node n : w.nodes) {
-                        if (!n.incomplete && !r.contains(nc.getPoint(n.eastNorth))) {
+                        if (!n.incomplete && !r.contains(nc.getPoint(n.getEastNorth()))) {
                             allIn = false;
                             break;
Index: trunk/src/org/openstreetmap/josm/gui/conflict/nodes/NodeListTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/nodes/NodeListTableCellRenderer.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/nodes/NodeListTableCellRenderer.java	(revision 1640)
@@ -65,8 +65,8 @@
         sb.append(" (");
 
-        if (node.coor != null) {
-            sb.append(COORD_FORMATTER.format(node.coor.lat()));
+        if (node.getCoor() != null) {
+            sb.append(COORD_FORMATTER.format(node.getCoor().lat()));
             sb.append(",");
-            sb.append(COORD_FORMATTER.format(node.coor.lon()));
+            sb.append(COORD_FORMATTER.format(node.getCoor().lon()));
         } else {
             sb.append("?,?");
Index: trunk/src/org/openstreetmap/josm/gui/conflict/relation/RelationMemberTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/relation/RelationMemberTableCellRenderer.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/relation/RelationMemberTableCellRenderer.java	(revision 1640)
@@ -82,8 +82,8 @@
             Node n = (Node)primitive;
             sb.append(" (");
-            if (n.coor != null) {
-                sb.append(COORD_FORMATTER.format(n.coor.lat()));
+            if (n.getCoor() != null) {
+                sb.append(COORD_FORMATTER.format(n.getCoor().lat()));
                 sb.append(",");
-                sb.append(COORD_FORMATTER.format(n.coor.lon()));
+                sb.append(COORD_FORMATTER.format(n.getCoor().lon()));
             } else {
                 sb.append("?,?");
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 1640)
@@ -202,10 +202,10 @@
         Visitor conflictPainter = new AbstractVisitor(){
             public void visit(Node n) {
-                Point p = nc.getPoint(n.eastNorth);
+                Point p = nc.getPoint(n.getEastNorth());
                 g.drawRect(p.x-1, p.y-1, 2, 2);
             }
             public void visit(Node n1, Node n2) {
-                Point p1 = nc.getPoint(n1.eastNorth);
-                Point p2 = nc.getPoint(n2.eastNorth);
+                Point p1 = nc.getPoint(n1.getEastNorth());
+                Point p2 = nc.getPoint(n2.getEastNorth());
                 g.drawLine(p1.x, p1.y, p2.x, p2.y);
             }
Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 1640)
@@ -427,5 +427,5 @@
                     doneNodes.add(n);
                 }
-                WayPoint wpt = new WayPoint(n.coor);                
+                WayPoint wpt = new WayPoint(n.getCoor());                
                 if (!n.isTimestampEmpty())
                 {
@@ -441,5 +441,5 @@
         for (Node n : data.nodes) {
             if (n.incomplete || n.deleted || doneNodes.contains(n)) continue;
-            WayPoint wpt = new WayPoint(n.coor);
+            WayPoint wpt = new WayPoint(n.getCoor());
             if (!n.isTimestampEmpty()) {
                 wpt.attr.put("time", DateUtils.fromDate(n.getTimestamp()));
Index: trunk/src/org/openstreetmap/josm/io/OsmWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 1639)
+++ trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 1640)
@@ -98,5 +98,5 @@
         if (n.incomplete) return;
         addCommon(n, "node");
-        out.print(" lat='"+n.coor.lat()+"' lon='"+n.coor.lon()+"'");
+        out.print(" lat='"+n.getCoor().lat()+"' lon='"+n.getCoor().lon()+"'");
         if (!withBody) {
             out.println("/>");  
