Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Instruction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Instruction.java	(revision 12378)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Instruction.java	(revision 12379)
@@ -13,5 +13,5 @@
 /**
  * A MapCSS Instruction.
- * 
+ *
  * For example a simple assignment like <code>width: 3;</code>, but may also
  * be a set instruction (<code>set highway;</code>).
@@ -27,4 +27,7 @@
     void execute(Environment env);
 
+    /**
+     * A float value that will be added to the current float value. Specified as +5 or -3 in MapCSS
+     */
     class RelativeFloat {
         public final float val;
@@ -40,4 +43,7 @@
     }
 
+    /**
+     * An instruction that assigns a given value to a variable on evaluation
+     */
     class AssignmentInstruction implements Instruction {
         public final String key;
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSRule.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSRule.java	(revision 12378)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSRule.java	(revision 12379)
@@ -6,4 +6,5 @@
 
 import org.openstreetmap.josm.gui.mappaint.Environment;
+import org.openstreetmap.josm.gui.mappaint.StyleSource;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -17,12 +18,33 @@
 public class MapCSSRule implements Comparable<MapCSSRule> {
 
+    /**
+     * The selector. If it matches, this rule should be applied
+     */
     public final Selector selector;
+    /**
+     * The instructions for this selector
+     */
     public final Declaration declaration;
 
+    /**
+     * A declaration is a set of {@link Instruction}s
+     */
     public static class Declaration {
+        /**
+         * The instructions in this declaration
+         */
         public final List<Instruction> instructions;
-        // declarations in the StyleSource are numbered consecutively
+        /**
+         * The index of this declaration
+         * <p>
+         * declarations in the StyleSource are numbered consecutively
+         */
         public final int idx;
 
+        /**
+         * Create a new {@link Declaration}
+         * @param instructions The instructions for this dectlaration
+         * @param idx The index in the {@link StyleSource}
+         */
         public Declaration(List<Instruction> instructions, int idx) {
             this.instructions = instructions;
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 12378)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 12379)
@@ -76,13 +76,32 @@
             "text/x-mapcss, text/mapcss, text/css; q=0.9, text/plain; q=0.8, application/zip, application/octet-stream; q=0.5";
 
-    // all rules
+    /**
+     * all rules in this style file
+     */
     public final List<MapCSSRule> rules = new ArrayList<>();
-    // rule indices, filtered by primitive type
-    public final MapCSSRuleIndex nodeRules = new MapCSSRuleIndex();         // nodes
-    public final MapCSSRuleIndex wayRules = new MapCSSRuleIndex();          // ways without tag area=no
-    public final MapCSSRuleIndex wayNoAreaRules = new MapCSSRuleIndex();    // ways with tag area=no
-    public final MapCSSRuleIndex relationRules = new MapCSSRuleIndex();     // relations that are not multipolygon relations
-    public final MapCSSRuleIndex multipolygonRules = new MapCSSRuleIndex(); // multipolygon relations
-    public final MapCSSRuleIndex canvasRules = new MapCSSRuleIndex();       // rules to apply canvas properties
+    /**
+     * Rules for nodes
+     */
+    public final MapCSSRuleIndex nodeRules = new MapCSSRuleIndex();
+    /**
+     * Rules for ways without tag area=no
+     */
+    public final MapCSSRuleIndex wayRules = new MapCSSRuleIndex();
+    /**
+     * Rules for ways with tag area=no
+     */
+    public final MapCSSRuleIndex wayNoAreaRules = new MapCSSRuleIndex();
+    /**
+     * Rules for relations that are not multipolygon relations
+     */
+    public final MapCSSRuleIndex relationRules = new MapCSSRuleIndex();
+    /**
+     * Rules for multipolygon relations
+     */
+    public final MapCSSRuleIndex multipolygonRules = new MapCSSRuleIndex();
+    /**
+     * rules to apply canvas properties
+     */
+    public final MapCSSRuleIndex canvasRules = new MapCSSRuleIndex();
 
     private Color backgroundColorOverride;
@@ -670,4 +689,10 @@
     }
 
+    /**
+     * Evaluate a supports condition
+     * @param feature The feature to evaluate for
+     * @param val The additional parameter passed to evaluate
+     * @return <code>true</code> if JSOM supports that feature
+     */
     public boolean evalSupportsDeclCondition(String feature, Object val) {
         if (feature == null) return false;
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Subpart.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Subpart.java	(revision 12378)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Subpart.java	(revision 12379)
@@ -12,6 +12,14 @@
 @FunctionalInterface
 public interface Subpart {
+    /**
+     * Gets the ID of the suppart
+     * @param env The environment to get it from
+     * @return The id
+     */
     String getId(Environment env);
 
+    /**
+     * The default subpart for normal rules
+     */
     Subpart DEFAULT_SUBPART = new StringSubpart("default");
 
