Index: /trunk/src/org/openstreetmap/josm/data/osm/ChangesetCacheEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/ChangesetCacheEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/ChangesetCacheEvent.java	(revision 12189)
@@ -4,11 +4,30 @@
 import java.util.Collection;
 
+/**
+ * An event indicating a change in the {@link ChangesetCache}
+ */
 public interface ChangesetCacheEvent {
+    /**
+     * The changeset cache the change happened in.
+     * @return The {@link ChangesetCache}
+     */
     ChangesetCache getSource();
 
+    /**
+     * Gets a list of {@link Changeset}s that were added to the cache
+     * @return The changesets
+     */
     Collection<Changeset> getAddedChangesets();
 
+    /**
+     * Gets a list of {@link Changeset}s that were removed from the cache
+     * @return The changesets
+     */
     Collection<Changeset> getRemovedChangesets();
 
+    /**
+     * Gets a list of {@link Changeset}s that were changed
+     * @return The changesets
+     */
     Collection<Changeset> getUpdatedChangesets();
 }
Index: /trunk/src/org/openstreetmap/josm/data/osm/DefaultChangesetCacheEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DefaultChangesetCacheEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DefaultChangesetCacheEvent.java	(revision 12189)
@@ -7,4 +7,7 @@
 import java.util.Set;
 
+/**
+ * The default event implementation that is used to indicate a change in the {@link ChangesetCache}
+ */
 public class DefaultChangesetCacheEvent implements ChangesetCacheEvent {
 
@@ -14,4 +17,8 @@
     private final ChangesetCache source;
 
+    /**
+     * Creates a basic, empty {@link ChangesetCacheEvent}
+     * @param source The source changeset
+     */
     public DefaultChangesetCacheEvent(ChangesetCache source) {
         this.source = source;
@@ -19,4 +26,9 @@
         modified = new HashSet<>();
         removed = new HashSet<>();
+    }
+
+    @Override
+    public ChangesetCache getSource() {
+        return source;
     }
 
@@ -32,13 +44,12 @@
 
     @Override
-    public ChangesetCache getSource() {
-        return source;
-    }
-
-    @Override
     public Collection<Changeset> getUpdatedChangesets() {
         return Collections.unmodifiableCollection(modified);
     }
 
+    /**
+     * Adds a {@link Changeset} to the added list
+     * @param cs the {@link Changeset}
+     */
     public void rememberAddedChangeset(Changeset cs) {
         if (cs == null) return;
@@ -46,4 +57,8 @@
     }
 
+    /**
+     * Adds a {@link Changeset} to the updated list
+     * @param cs the {@link Changeset}
+     */
     public void rememberUpdatedChangeset(Changeset cs) {
         if (cs == null) return;
@@ -51,4 +66,8 @@
     }
 
+    /**
+     * Adds a {@link Changeset} to the removed list
+     * @param cs the {@link Changeset}
+     */
     public void rememberRemovedChangeset(Changeset cs) {
         if (cs == null) return;
@@ -56,4 +75,8 @@
     }
 
+    /**
+     * Checks if this event contains any {@link Changeset}s
+     * @return <code>true</code> if changesets were added
+     */
     public boolean isEmpty() {
         return added.isEmpty() && modified.isEmpty() && removed.isEmpty();
Index: /trunk/src/org/openstreetmap/josm/data/osm/NameFormatter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/NameFormatter.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/NameFormatter.java	(revision 12189)
@@ -42,8 +42,20 @@
     String format(Changeset changeset);
 
+    /**
+     * Gets a comparator that sorts the nodes by the string that this formatter would create for them
+     * @return That comparator
+     */
     Comparator<Node> getNodeComparator();
 
+    /**
+     * Gets a comparator that sorts the ways by the string that this formatter would create for them
+     * @return That comparator
+     */
     Comparator<Way> getWayComparator();
 
+    /**
+     * Gets a comparator that sorts the relations by the string that this formatter would create for them
+     * @return That comparator
+     */
     Comparator<Relation> getRelationComparator();
 }
Index: /trunk/src/org/openstreetmap/josm/data/osm/Way.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 12189)
@@ -779,4 +779,8 @@
     }
 
+    /**
+     * Clears all cached styles for all nodes of this way. This should not be called from outside.
+     * @see Node#clearCachedStyle()
+     */
     public void clearCachedNodeStyles() {
         for (final Node n : nodes) {
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java	(revision 12189)
@@ -17,12 +17,39 @@
      */
     public enum DatasetEventType {
+        /**
+         * A combination of multiple events
+         */
         DATA_CHANGED,
+        /**
+         * The lat/lon coordinates of a node have changed.
+         */
         NODE_MOVED,
+        /**
+         * Primitives have been added to this dataset
+         */
         PRIMITIVES_ADDED,
+        /**
+         * Primitives have been removed from this dataset
+         */
         PRIMITIVES_REMOVED,
+        /**
+         * The members of a relation have changed
+         */
         RELATION_MEMBERS_CHANGED,
+        /**
+         * The tags of a primitve have changed
+         */
         TAGS_CHANGED,
+        /**
+         * The nodes of a way or their order has changed
+         */
         WAY_NODES_CHANGED,
+        /**
+         * The changeset id changed for a list of primitives
+         */
         CHANGESET_ID_CHANGED,
+        /**
+         * The flags changed for a primitive and have not been covered in an other event
+         */
         PRIMITIVE_FLAGS_CHANGED,
     }
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/ChangesetIdChangedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/ChangesetIdChangedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/ChangesetIdChangedEvent.java	(revision 12189)
@@ -7,4 +7,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 
+/**
+ * An event that is triggered when the changeset id has changed for a list of primitives.
+ */
 public class ChangesetIdChangedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java	(revision 12189)
@@ -9,4 +9,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 
+/**
+ * A combined data change event. It consists of multiple dataset events.
+ */
 public class DataChangedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/NodeMovedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/NodeMovedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/NodeMovedEvent.java	(revision 12189)
@@ -9,4 +9,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 
+/**
+ * An event that is triggered on a node move (lat/lon change)
+ */
 public class NodeMovedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesAddedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesAddedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesAddedEvent.java	(revision 12189)
@@ -10,4 +10,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 
+/**
+ * An event that is triggered if primitives have been added to the dataset
+ */
 public class PrimitivesAddedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesRemovedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesRemovedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesRemovedEvent.java	(revision 12189)
@@ -10,4 +10,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 
+/**
+ * An event that is triggered when primitives were removed from the dataset
+ */
 public class PrimitivesRemovedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/RelationMembersChangedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/RelationMembersChangedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/RelationMembersChangedEvent.java	(revision 12189)
@@ -9,4 +9,7 @@
 import org.openstreetmap.josm.data.osm.Relation;
 
+/**
+ * An event that is triggered if the members of a single relation have changed
+ */
 public class RelationMembersChangedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/TagsChangedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/TagsChangedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/TagsChangedEvent.java	(revision 12189)
@@ -9,4 +9,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 
+/**
+ * An event that is triggered if the tags of a single primitive have changed
+ */
 public class TagsChangedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/event/WayNodesChangedEvent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/event/WayNodesChangedEvent.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/event/WayNodesChangedEvent.java	(revision 12189)
@@ -9,4 +9,7 @@
 import org.openstreetmap.josm.data.osm.Way;
 
+/**
+ * An event that is triggered when the nodes of a way have been changed (nodes added, removed or the order was changed)
+ */
 public class WayNodesChangedEvent extends AbstractDatasetChangedEvent {
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java	(revision 12189)
@@ -60,4 +60,8 @@
     }
 
+    /**
+     * Adds a listener that listens to history data set events.
+     * @param listener The listener
+     */
     public void addHistoryDataSetListener(HistoryDataSetListener listener) {
         if (listener != null) {
@@ -66,4 +70,8 @@
     }
 
+    /**
+     * Removes a listener that listens to history data set events.
+     * @param listener The listener
+     */
     public void removeHistoryDataSetListener(HistoryDataSetListener listener) {
         listeners.remove(listener);
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSetListener.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSetListener.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSetListener.java	(revision 12189)
@@ -4,4 +4,8 @@
 import org.openstreetmap.josm.data.osm.PrimitiveId;
 
+/**
+ * A listener that listens to changes in the {@link HistoryDataSet}.
+ * @see HistoryDataSet#addHistoryDataSetListener(HistoryDataSetListener)
+ */
 public interface HistoryDataSetListener {
     /**
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java	(revision 12189)
@@ -44,14 +44,30 @@
     public static final String PREF_KEY_RENDERER_CLASS_NAME = "mappaint.renderer-class-name";
 
+    /**
+     * An exception thrown while creating a map renderer
+     */
     public static class MapRendererFactoryException extends RuntimeException {
 
+        /**
+         * Create a new {@link MapRendererFactoryException}
+         * @param message The message
+         * @param cause The cause
+         */
         public MapRendererFactoryException(String message, Throwable cause) {
             super(message, cause);
         }
 
+        /**
+         * Create a new {@link MapRendererFactoryException}
+         * @param message The message
+         */
         public MapRendererFactoryException(String message) {
             super(message);
         }
 
+        /**
+         * Create a new {@link MapRendererFactoryException}
+         * @param cause The cause
+         */
         public MapRendererFactoryException(Throwable cause) {
             super(cause);
@@ -59,4 +75,7 @@
     }
 
+    /**
+     * A description of a possible renderer for the map
+     */
     public static class Descriptor {
         private final Class<? extends AbstractMapRenderer> renderer;
@@ -64,4 +83,10 @@
         private final String description;
 
+        /**
+         * Creates a new map renderer description
+         * @param renderer The renderer
+         * @param displayName The display name for the renderer
+         * @param description The longer description that should be displayed to the user.
+         */
         public Descriptor(Class<? extends AbstractMapRenderer> renderer, String displayName, String description) {
             this.renderer = renderer;
@@ -70,12 +95,24 @@
         }
 
+        /**
+         * Get the class of the renderer
+         * @return The class
+         */
         public Class<? extends AbstractMapRenderer> getRenderer() {
             return renderer;
         }
 
+        /**
+         * Get the display name
+         * @return The name
+         */
         public String getDisplayName() {
             return displayName;
         }
 
+        /**
+         * Get the description
+         * @return The description
+         */
         public String getDescription() {
             return description;
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java	(revision 12188)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java	(revision 12189)
@@ -247,8 +247,24 @@
     }
 
+    /**
+     * The polygon data for a multipolygon part.
+     * It contains the outline of this polygon in east/north space.
+     */
     public static class PolyData extends JoinedWay {
+        /**
+         * The intersection type used for {@link PolyData#contains(java.awt.geom.Path2D.Double)}
+         */
         public enum Intersection {
+            /**
+             * The polygon is completely inside this PolyData
+             */
             INSIDE,
+            /**
+             * The polygon is completely outside of this PolyData
+             */
             OUTSIDE,
+            /**
+             * The polygon is partially inside and outside of this PolyData
+             */
             CROSSING
         }
@@ -313,4 +329,9 @@
         }
 
+        /**
+         * Checks if this multipolygon contains or crosses an other polygon
+         * @param p The path to check. Needs to be in east/north space.
+         * @return a {@link Intersection} constant
+         */
         public Intersection contains(Path2D.Double p) {
             int contains = 0;
@@ -334,4 +355,8 @@
         }
 
+        /**
+         * Adds an inner polygon
+         * @param inner The polygon to add as inner polygon.
+         */
         public void addInner(PolyData inner) {
             inners.add(inner);
@@ -343,8 +368,16 @@
         }
 
+        /**
+         * Gets the polygon outline and interior as java path
+         * @return The path in east/north space.
+         */
         public Path2D.Double get() {
             return poly;
         }
 
+        /**
+         * Gets the bounds as {@link Rectangle2D} in east/north space.
+         * @return The bounds
+         */
         public Rectangle2D getBounds() {
             if (bounds == null) {
@@ -354,4 +387,8 @@
         }
 
+        /**
+         * Gets a list of all inner polygons.
+         * @return The inner polygons.
+         */
         public List<PolyData> getInners() {
             return Collections.unmodifiableList(inners);
@@ -395,4 +432,8 @@
         }
 
+        /**
+         * Check if this polygon was changed by a node move
+         * @param event The node move event
+         */
         public void nodeMoved(NodeMovedEvent event) {
             final Node n = event.getNode();
@@ -409,4 +450,8 @@
         }
 
+        /**
+         * Check if this polygon was affected by a way change
+         * @param event The way event
+         */
         public void wayNodesChanged(WayNodesChangedEvent event) {
             final Long wayId = event.getChangedWay().getUniqueId();
@@ -526,4 +571,9 @@
     }
 
+    /**
+     * Attempt to combine the ways in the list if they share common end nodes
+     * @param waysToJoin The ways to join
+     * @return A collection of {@link JoinedWay} objects indicating the possible join of those ways
+     */
     public static Collection<JoinedWay> joinWays(Collection<Way> waysToJoin) {
         final Collection<JoinedWay> result = new ArrayList<>();
@@ -621,4 +671,10 @@
     }
 
+    /**
+     * Find a matching outer polygon for the inner one
+     * @param inner The inner polygon to search the outer for
+     * @param outerPolygons The possible outer polygons
+     * @return The outer polygon that was found or <code>null</code> if none was found.
+     */
     public PolyData findOuterPolygon(PolyData inner, List<PolyData> outerPolygons) {
         // First try to test only bbox, use precise testing only if we don't get unique result
