Index: trunk/src/org/openstreetmap/josm/gui/draw/MapViewPath.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/draw/MapViewPath.java	(revision 11816)
+++ trunk/src/org/openstreetmap/josm/gui/draw/MapViewPath.java	(revision 11817)
@@ -14,5 +14,4 @@
 import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
-
 
 /**
@@ -186,17 +185,17 @@
      */
     public void appendFromEastNorth(Path2D.Double path) {
-        new AbstractPathVisitor() {
+        new PathVisitor() {
             @Override
-            void visitMoveTo(double x, double y) {
+            public void visitMoveTo(double x, double y) {
                 moveTo(new EastNorth(x, y));
             }
 
             @Override
-            void visitLineTo(double x, double y) {
+            public void visitLineTo(double x, double y) {
                 lineTo(new EastNorth(x, y));
             }
 
             @Override
-            void visitClose() {
+            public void visitClose() {
                 closePath();
             }
@@ -302,5 +301,5 @@
     }
 
-    private abstract static class AbstractPathVisitor {
+    private interface PathVisitor {
         /**
          * Append a path to this one. The path is clipped to the current view.
@@ -308,5 +307,5 @@
          * @return true if adding the path was successful.
          */
-        public boolean visit(Path2D.Double path) {
+        default boolean visit(Path2D.Double path) {
             double[] coords = new double[8];
             PathIterator it = path.getPathIterator(null);
@@ -332,16 +331,16 @@
         }
 
-        abstract void visitClose();
-
-        abstract void visitMoveTo(double x, double y);
-
-        abstract void visitLineTo(double x, double y);
-    }
-
-    private abstract class AbstractMapPathVisitor extends AbstractPathVisitor {
+        void visitClose();
+
+        void visitMoveTo(double x, double y);
+
+        void visitLineTo(double x, double y);
+    }
+
+    private abstract class AbstractMapPathVisitor implements PathVisitor {
         private MapViewPoint lastMoveTo;
 
         @Override
-        void visitMoveTo(double x, double y) {
+        public void visitMoveTo(double x, double y) {
             MapViewPoint move = state.getForView(x, y);
             lastMoveTo = move;
@@ -352,5 +351,5 @@
 
         @Override
-        void visitLineTo(double x, double y) {
+        public void visitLineTo(double x, double y) {
             visitLineTo(state.getForView(x, y));
         }
@@ -359,5 +358,5 @@
 
         @Override
-        void visitClose() {
+        public void visitClose() {
             visitLineTo(lastMoveTo);
         }
