Index: trunk/src/org/openstreetmap/josm/gui/mappaint/Range.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/Range.java	(revision 11369)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/Range.java	(revision 11370)
@@ -5,5 +5,5 @@
 
 /**
- * An interval of the form "lower &lt; x &lt;= upper" where 0 &lt;= lower &lt; upper.
+ * A scale interval of the form "lower &lt; x &lt;= upper" where 0 &lt;= lower &lt; upper.
  * (upper can be Double.POSITIVE_INFINITY)
  * immutable class
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 11369)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 11370)
@@ -8,7 +8,7 @@
 import java.util.List;
 import java.util.NoSuchElementException;
+import java.util.Set;
 import java.util.function.IntFunction;
 import java.util.function.IntSupplier;
-import java.util.Set;
 import java.util.regex.PatternSyntaxException;
 
@@ -57,6 +57,16 @@
     boolean matches(Environment env);
 
+    /**
+     * Returns the subpart, if supported. A subpart identifies different rendering layers (<code>::subpart</code> syntax).
+     * @return the subpart, if supported
+     * @throws UnsupportedOperationException if not supported
+     */
     Subpart getSubpart();
 
+    /**
+     * Returns the scale range, an interval of the form "lower &lt; x &lt;= upper" where 0 &lt;= lower &lt; upper.
+     * @return the scale range, if supported
+     * @throws UnsupportedOperationException if not supported
+     */
     Range getRange();
 
@@ -75,4 +85,8 @@
     Selector optimizedBaseCheck();
 
+    /**
+     * The type of child of parent selector.
+     * @see ChildOrParentSelector
+     */
     enum ChildOrParentSelectorType {
         CHILD, PARENT, ELEMENT_OF, CROSSING, SIBLING
@@ -91,5 +105,6 @@
      *    node[traffic_calming] &lt; way { ... }   // example (way that has a traffic calming node)
      * </pre>
-     *
+     * <p>Child: see <a href="https://josm.openstreetmap.de/wiki/Help/Styles/MapCSSImplementation#Childselector">wiki</a>
+     * <br>Parent: see <a href="https://josm.openstreetmap.de/wiki/Help/Styles/MapCSSImplementation#Parentselector">wiki</a></p>
      */
     class ChildOrParentSelector implements Selector {
@@ -482,4 +497,8 @@
     }
 
+    /**
+     * In a child selector, conditions on the link between a parent and a child object.
+     * See <a href="https://josm.openstreetmap.de/wiki/Help/Styles/MapCSSImplementation#Linkselector">wiki</a>
+     */
     class LinkSelector extends AbstractSelector {
 
@@ -511,8 +530,11 @@
         @Override
         public String toString() {
-            return "LinkSelector{" + "conditions=" + conds + '}';
+            return "LinkSelector{conditions=" + conds + '}';
         }
     }
 
+    /**
+     * General selector. See <a href="https://josm.openstreetmap.de/wiki/Help/Styles/MapCSSImplementation#Selectors">wiki</a>
+     */
     class GeneralSelector extends OptimizedGeneralSelector {
 
@@ -536,4 +558,8 @@
     }
 
+    /**
+     * Superclass of {@link GeneralSelector}. Used to create an "optimized" copy of this selector that omits the base check.
+     * @see Selector#optimizedBaseCheck
+     */
     class OptimizedGeneralSelector extends AbstractSelector {
         public final String base;
@@ -651,5 +677,5 @@
         public String toString() {
             return base + (Range.ZERO_TO_INFINITY.equals(range) ? "" : range) + Utils.join("", conds)
-                    + (subpart != null && subpart != Subpart.DEFAULT_SUBPART ? "::" + subpart : "");
+                    + (subpart != null && subpart != Subpart.DEFAULT_SUBPART ? ("::" + subpart) : "");
         }
     }
