Index: /trunk/src/org/openstreetmap/josm/data/osm/IWay.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/IWay.java	(revision 13917)
+++ /trunk/src/org/openstreetmap/josm/data/osm/IWay.java	(revision 13918)
@@ -92,3 +92,35 @@
         return formatter.format(this);
     }
+
+    /**
+     * Returns the first node of this way.
+     * The result equals {@link #getNode getNode}{@code (0)}.
+     * @return the first node of this way
+     * @since 13918
+     */
+    Node firstNode();
+
+    /**
+     * Returns the last node of this way.
+     * The result equals <code>{@link #getNode getNode}({@link #getNodesCount getNodesCount} - 1)</code>.
+     * @return the last node of this way
+     * @since 13918
+     */
+    Node lastNode();
+
+    /**
+     * Replies true if the given node is the first or the last one of this way, false otherwise.
+     * @param n The node to test
+     * @return true if the {@code n} is the first or the last node, false otherwise.
+     * @since 13918
+     */
+    boolean isFirstLastNode(Node n);
+
+    /**
+     * Replies true if the given node is an inner node of this way, false otherwise.
+     * @param n The node to test
+     * @return true if the {@code n} is an inner node, false otherwise.
+     * @since 13918
+     */
+    boolean isInnerNode(Node n);
 }
Index: /trunk/src/org/openstreetmap/josm/data/osm/Way.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 13917)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 13918)
@@ -490,10 +490,5 @@
     }
 
-    /**
-     * Returns the last node of this way.
-     * The result equals <code>{@link #getNode getNode}({@link #getNodesCount getNodesCount} - 1)</code>.
-     * @return the last node of this way
-     * @since 1400
-     */
+    @Override
     public Node lastNode() {
         Node[] nodes = this.nodes;
@@ -502,10 +497,5 @@
     }
 
-    /**
-     * Returns the first node of this way.
-     * The result equals {@link #getNode getNode}{@code (0)}.
-     * @return the first node of this way
-     * @since 1400
-     */
+    @Override
     public Node firstNode() {
         Node[] nodes = this.nodes;
@@ -514,10 +504,5 @@
     }
 
-    /**
-     * Replies true if the given node is the first or the last one of this way, false otherwise.
-     * @param n The node to test
-     * @return true if the {@code n} is the first or the last node, false otherwise.
-     * @since 1400
-     */
+    @Override
     public boolean isFirstLastNode(Node n) {
         Node[] nodes = this.nodes;
@@ -526,10 +511,5 @@
     }
 
-    /**
-     * Replies true if the given node is an inner node of this way, false otherwise.
-     * @param n The node to test
-     * @return true if the {@code n} is an inner node, false otherwise.
-     * @since 3515
-     */
+    @Override
     public boolean isInnerNode(Node n) {
         Node[] nodes = this.nodes;
Index: /trunk/src/org/openstreetmap/josm/data/osm/WayData.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/WayData.java	(revision 13917)
+++ /trunk/src/org/openstreetmap/josm/data/osm/WayData.java	(revision 13918)
@@ -8,5 +8,6 @@
 
 /**
- * The data (tags and node ids) that is stored for a way in the database
+ * The data (tags and node ids) that is stored for a way in the database.
+ * @since 2284
  */
 public class WayData extends PrimitiveData implements IWay<NodeData> {
@@ -109,3 +110,23 @@
         throw new UnsupportedOperationException();
     }
+
+    @Override
+    public Node firstNode() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public Node lastNode() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean isFirstLastNode(Node n) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean isInnerNode(Node n) {
+        throw new UnsupportedOperationException();
+    }
 }
