Index: trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 12190)
@@ -307,4 +307,8 @@
     }
 
+    /**
+     * Gets the type this primitive is displayed at
+     * @return A {@link OsmPrimitiveType}
+     */
     public OsmPrimitiveType getDisplayType() {
         return getType();
@@ -669,4 +673,9 @@
     }
 
+    /**
+     * Gets a key ignoring the case of the key
+     * @param key The key to get
+     * @return The value for a key that matches the given key ignoring case.
+     */
     public final String getIgnoreCase(String key) {
         String[] keys = this.keys;
@@ -681,4 +690,8 @@
     }
 
+    /**
+     * Gets the number of keys
+     * @return The number of keys set for this primitive.
+     */
     public final int getNumKeys() {
         String[] keys = this.keys;
Index: trunk/src/org/openstreetmap/josm/data/osm/BBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/BBox.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/BBox.java	(revision 12190)
@@ -299,4 +299,8 @@
     }
 
+    /**
+     * Converts the bounds to a rectangle
+     * @return The rectangle in east/north space.
+     */
     public Rectangle2D toRectangle() {
         return new Rectangle2D.Double(xmin, ymin, xmax - xmin, ymax - ymin);
@@ -339,4 +343,9 @@
     }
 
+    /**
+     * Creates a CSV string for this bbox
+     * @param separator The separator to use
+     * @return A string
+     */
     public String toStringCSV(String separator) {
         return Utils.join(separator, Arrays.asList(
Index: trunk/src/org/openstreetmap/josm/data/osm/ChangesetCacheListener.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/ChangesetCacheListener.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/ChangesetCacheListener.java	(revision 12190)
@@ -2,7 +2,15 @@
 package org.openstreetmap.josm.data.osm;
 
+/**
+ * A listener that listens to changes on the {@link ChangesetCache}
+ * @see ChangesetCacheEvent
+ */
 @FunctionalInterface
 public interface ChangesetCacheListener {
 
+    /**
+     * Gets notified on changeset cache updates
+     * @param event The event that happened
+     */
     void changesetCacheUpdated(ChangesetCacheEvent event);
 }
Index: trunk/src/org/openstreetmap/josm/data/osm/NodeData.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/NodeData.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/NodeData.java	(revision 12190)
@@ -7,4 +7,7 @@
 import org.openstreetmap.josm.data.projection.Projections;
 
+/**
+ * The data on a single node (tags and position) that is stored in the database
+ */
 public class NodeData extends PrimitiveData implements INode {
 
Index: trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 12190)
@@ -1014,4 +1014,8 @@
     }
 
+    /**
+     * Gets a list of all primitives in the current dataset that reference this primitive.
+     * @return The referrers
+     */
     public final List<OsmPrimitive> getReferrers() {
         return getReferrers(false);
Index: trunk/src/org/openstreetmap/josm/data/osm/RelationMemberData.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/RelationMemberData.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/RelationMemberData.java	(revision 12190)
@@ -7,4 +7,7 @@
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
+/**
+ * This is the data (role, type and id) that is stored in the database for a given relation member.
+ */
 public class RelationMemberData implements PrimitiveId, Serializable {
 
Index: trunk/src/org/openstreetmap/josm/data/osm/RelationToChildReference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/RelationToChildReference.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/RelationToChildReference.java	(revision 12190)
@@ -7,4 +7,7 @@
 import java.util.Set;
 
+/**
+ * This is an extension of {@link RelationMember} that stores the parent relation and the index in it in addition to the role/child.
+ */
 public class RelationToChildReference {
 
@@ -48,4 +51,11 @@
     private final OsmPrimitive child;
 
+    /**
+     * Create a new {@link RelationToChildReference}
+     * @param parent The parent relation
+     * @param position The position of the child in the parent
+     * @param role The role of the child
+     * @param child The actual child (member of parent)
+     */
     public RelationToChildReference(Relation parent, int position, String role, OsmPrimitive child) {
         this.parent = parent;
@@ -55,23 +65,42 @@
     }
 
+    /**
+     * Create a new {@link RelationToChildReference}
+     * @param parent The parent relation
+     * @param position The position of the child in the parent
+     * @param member The role and relation for the child
+     */
     public RelationToChildReference(Relation parent, int position, RelationMember member) {
-        this.parent = parent;
-        this.position = position;
-        this.role = member.getRole();
-        this.child = member.getMember();
+        this(parent, position, member.getRole(), member.getMember());
     }
 
+    /**
+     * Get the parent relation
+     * @return The parent
+     */
     public Relation getParent() {
         return parent;
     }
 
+    /**
+     * Get the position of the child in the parent
+     * @return The position of the child
+     */
     public int getPosition() {
         return position;
     }
 
+    /**
+     * Get the role of the child
+     * @return The role
+     */
     public String getRole() {
         return role;
     }
 
+    /**
+     * Get the actual child
+     * @return The child
+     */
     public OsmPrimitive getChild() {
         return child;
Index: trunk/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java	(revision 12190)
@@ -10,4 +10,7 @@
 import java.util.regex.Pattern;
 
+/**
+ * A primitive id and a primitive type
+ */
 public class SimplePrimitiveId implements PrimitiveId, Serializable {
 
@@ -17,8 +20,19 @@
     private final OsmPrimitiveType type;
 
+    /**
+     * A pattern that is used to parse a textual primitive id
+     */
     public static final Pattern ID_PATTERN = Pattern.compile("(n|node|w|way|r|rel|relation)[ /]?(\\d+)");
 
+    /**
+     * A pattern that is used to parse an id range
+     */
     public static final Pattern MULTIPLE_IDS_PATTERN = Pattern.compile(ID_PATTERN.pattern() + "(-(\\d+))?");
 
+    /**
+     * Create a new primtive id
+     * @param id The id
+     * @param type The type of the primitive
+     */
     public SimplePrimitiveId(long id, OsmPrimitiveType type) {
         this.id = id;
Index: trunk/src/org/openstreetmap/josm/data/osm/WayData.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/WayData.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/WayData.java	(revision 12190)
@@ -3,8 +3,12 @@
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
 
+/**
+ * The data (tags and node ids) that is stored for a way in the database
+ */
 public class WayData extends PrimitiveData implements IWay {
 
@@ -37,6 +41,10 @@
     }
 
+    /**
+     * Gets a list of nodes the way consists of
+     * @return The ids of the nodes
+     */
     public List<Long> getNodes() {
-        return nodes;
+        return Collections.unmodifiableList(nodes);
     }
 
@@ -57,4 +65,8 @@
     }
 
+    /**
+     * Sets the nodes array
+     * @param nodes The nodes this way consists of
+     */
     public void setNodes(List<Long> nodes) {
         this.nodes = new ArrayList<>(nodes);
Index: trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java	(revision 12189)
+++ trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java	(revision 12190)
@@ -197,4 +197,8 @@
     }
 
+    /**
+     * Gets a unsorted set of all changeset ids that were used by the primitives in this data set
+     * @return The ids
+     */
     public Collection<Long> getChangesetIds() {
         final Set<Long> ids = new HashSet<>();
