Index: trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 12390)
@@ -134,4 +134,8 @@
     };
 
+    /**
+     * Adds a test to the list of available tests
+     * @param testClass The test class
+     */
     public static void addTest(Class<? extends Test> testClass) {
         allTests.add(testClass);
@@ -193,12 +197,26 @@
     }
 
+    /**
+     * Adds an ignored error
+     * @param s The ignore group / sub group name
+     * @see TestError#getIgnoreGroup()
+     * @see TestError#getIgnoreSubGroup()
+     */
     public static void addIgnoredError(String s) {
         ignoredErrors.add(s);
     }
 
+    /**
+     * Check if a error should be ignored
+     * @param s The ignore group / sub group name
+     * @return <code>true</code> to ignore that error
+     */
     public static boolean hasIgnoredError(String s) {
         return ignoredErrors.contains(s);
     }
 
+    /**
+     * Saves the names of the ignored errors to a file
+     */
     public static void saveIgnoredErrors() {
         try (PrintWriter out = new PrintWriter(new File(getValidatorDir(), "ignorederrors"), StandardCharsets.UTF_8.name())) {
@@ -270,8 +288,17 @@
     }
 
+    /**
+     * Gets all tests that are possible
+     * @return The tests
+     */
     public static Collection<Test> getTests() {
         return getAllTestsMap().values();
     }
 
+    /**
+     * Gets all tests that are run
+     * @param beforeUpload To get the ones that are run before upload
+     * @return The tests
+     */
     public static Collection<Test> getEnabledTests(boolean beforeUpload) {
         Collection<Test> enabledTests = getTests();
Index: trunk/src/org/openstreetmap/josm/data/validation/Severity.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/Severity.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/Severity.java	(revision 12390)
@@ -43,4 +43,7 @@
     }
 
+    /**
+     * Retrieves all colors once from the preferences to register them
+     */
     public static void getColors() {
         for (Severity c : values()) {
Index: trunk/src/org/openstreetmap/josm/data/validation/TestError.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/TestError.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/TestError.java	(revision 12390)
@@ -299,4 +299,8 @@
     }
 
+    /**
+     * Gets the ignores subgroup that is more specialized than {@link #getIgnoreGroup()}
+     * @return The ignore sub group
+     */
     public String getIgnoreSubGroup() {
         String ignorestring = getIgnoreGroup();
@@ -307,12 +311,25 @@
     }
 
+    /**
+     * Gets the ignore group ID that is used to allow the user to ignore all same errors
+     * @return The group id
+     * @see TestError#getIgnoreSubGroup()
+     */
     public String getIgnoreGroup() {
         return Integer.toString(code);
     }
 
+    /**
+     * Flags this error as ignored
+     * @param state The ignore flag
+     */
     public void setIgnored(boolean state) {
         ignored = state;
     }
 
+    /**
+     * Checks if this error is ignored
+     * @return <code>true</code> if it is ignored
+     */
     public boolean isIgnored() {
         return ignored;
@@ -371,4 +388,8 @@
     }
 
+    /**
+     * Visits all highlighted validation elements
+     * @param v The visitor that should receive a visit-notification on all highlighted elements
+     */
     @SuppressWarnings("unchecked")
     public void visitHighlighted(ValidatorVisitor v) {
Index: trunk/src/org/openstreetmap/josm/data/validation/ValidatorVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/ValidatorVisitor.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/ValidatorVisitor.java	(revision 12390)
@@ -8,11 +8,32 @@
 import org.openstreetmap.josm.data.osm.WaySegment;
 
+/**
+ * A visitor that is used during validation.
+ * <p>
+ * The most basic use is to visit all {@link TestError}s of the validator
+ */
 public interface ValidatorVisitor {
+    /**
+     * Visit a test error
+     * @param error The test error to visit
+     */
     void visit(TestError error);
 
-    void visit(OsmPrimitive p);
+    /**
+     * Visit a OSM primitive, e.g. to highlight it
+     * @param primitive The primitive
+     */
+    void visit(OsmPrimitive primitive);
 
-    void visit(WaySegment ws);
+    /**
+     * Visit a way segment that was part of the error
+     * @param waySegment The way segment
+     */
+    void visit(WaySegment waySegment);
 
+    /**
+     * Visit a list of nodes that are part of the error
+     * @param nodes The nodes
+     */
     void visit(List<Node> nodes);
 }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/ConditionalKeys.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/ConditionalKeys.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/ConditionalKeys.java	(revision 12390)
@@ -51,21 +51,45 @@
     }
 
+    /**
+     * Check if the key is a key for an access restriction
+     * @param part The key (or the restriction part of it, e.g. for lanes)
+     * @return <code>true</code> if it is a restriction
+     */
     public static boolean isRestrictionType(String part) {
         return RESTRICTION_TYPES.contains(part);
     }
 
+    /**
+     * Check if the value is a valid restriction value
+     * @param part The value
+     * @return <code>true</code> for allowed restriction values
+     */
     public static boolean isRestrictionValue(String part) {
         return RESTRICTION_VALUES.contains(part);
     }
 
+    /**
+     * Checks if the key denotes a <a href="http://wiki.openstreetmap.org/wiki/Key:access#Transport_mode_restrictions">transport access mode restriction</a>
+     * @param part The key (or the restriction part of it, e.g. for lanes)
+     * @return <code>true</code> if it is a restriction
+     */
     public static boolean isTransportationMode(String part) {
-        // http://wiki.openstreetmap.org/wiki/Key:access#Transport_mode_restrictions
         return TRANSPORT_MODES.contains(part);
     }
 
+    /**
+     * Check if a key part is a valid direction
+     * @param part The part of the key
+     * @return <code>true</code> if it is a direction
+     */
     public static boolean isDirection(String part) {
         return "forward".equals(part) || "backward".equals(part);
     }
 
+    /**
+     * Checks if a given key is a valid access key
+     * @param key The conditional key
+     * @return <code>true</code> if the key is valid
+     */
     public boolean isKeyValid(String key) {
         // <restriction-type>[:<transportation mode>][:<direction>]:conditional
@@ -91,4 +115,10 @@
     }
 
+    /**
+     * Check if a value is valid
+     * @param key The key the value is for
+     * @param value The value
+     * @return <code>true</code> if it is valid
+     */
     public boolean isValueValid(String key, String value) {
         return validateValue(key, value) == null;
@@ -101,8 +131,22 @@
     }
 
+    /**
+     * A conditional value is a value for the access restriction tag that depends on conditions (time, ...)
+     */
     public static class ConditionalValue {
+        /**
+         * The value the tag should have if the condition matches
+         */
         public final String restrictionValue;
+        /**
+         * The conditions for {@link #restrictionValue}
+         */
         public final Collection<String> conditions;
 
+        /**
+         * Create a new {@link ConditionalValue}
+         * @param restrictionValue The value the tag should have if the condition matches
+         * @param conditions The conditions for that value
+         */
         public ConditionalValue(String restrictionValue, Collection<String> conditions) {
             this.restrictionValue = restrictionValue;
@@ -137,4 +181,10 @@
     }
 
+    /**
+     * Validate a key/value pair
+     * @param key The key
+     * @param value The value
+     * @return The error message for that value or <code>null</code> to indicate valid
+     */
     public String validateValue(String key, String value) {
         try {
@@ -162,4 +212,9 @@
     }
 
+    /**
+     * Validate a primitive
+     * @param p The primitive
+     * @return The errors for that primitive or an empty list if there are no errors.
+     */
     public List<TestError> validatePrimitive(OsmPrimitive p) {
         final List<TestError> errors = new ArrayList<>();
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 12390)
@@ -235,4 +235,7 @@
     }
 
+    /**
+     * A normalization that is applied to names before testing them
+     */
     @FunctionalInterface
     public interface NormalizeRule {
@@ -246,8 +249,17 @@
     }
 
+    /**
+     * A rule to replace by regular expression,
+     * so that all strings matching the regular expression are handled as if they were {@link RegExprRule#replacement}
+     */
     public static class RegExprRule implements NormalizeRule {
         private final Pattern regExpr;
         private final String replacement;
 
+        /**
+         * Create a new rule to replace by regular expression
+         * @param expression The regular expression
+         * @param replacement The replacement
+         */
         public RegExprRule(String expression, String replacement) {
             this.regExpr = Pattern.compile(expression);
@@ -266,4 +278,7 @@
     }
 
+    /**
+     * A rule that registers synonyms to a given word
+     */
     public static class SynonymRule implements NormalizeRule {
 
@@ -272,4 +287,9 @@
         private final String replacement;
 
+        /**
+         * Create a new {@link SynonymRule}
+         * @param replacement The word to use instead
+         * @param words The synonyms for that word
+         */
         public SynonymRule(String replacement, String... words) {
             this.replacement = replacement.toLowerCase(Locale.ENGLISH);
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 12389)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 12390)
@@ -81,14 +81,42 @@
     protected static final String PREFIX = ValidatorPreference.PREFIX + "." + TagChecker.class.getSimpleName();
 
+    /**
+     * The preference key to check values
+     */
     public static final String PREF_CHECK_VALUES = PREFIX + ".checkValues";
+    /**
+     * The preference key to check keys
+     */
     public static final String PREF_CHECK_KEYS = PREFIX + ".checkKeys";
+    /**
+     * The preference key to enable complex checks
+     */
     public static final String PREF_CHECK_COMPLEX = PREFIX + ".checkComplex";
+    /**
+     * The preference key to search for fixme tags
+     */
     public static final String PREF_CHECK_FIXMES = PREFIX + ".checkFixmes";
 
+    /**
+     * The preference key for source files
+     * @see #DEFAULT_SOURCES
+     */
     public static final String PREF_SOURCES = PREFIX + ".source";
 
+    /**
+     * The preference key to check keys - used before upload
+     */
     public static final String PREF_CHECK_KEYS_BEFORE_UPLOAD = PREF_CHECK_KEYS + "BeforeUpload";
+    /**
+     * The preference key to check values - used before upload
+     */
     public static final String PREF_CHECK_VALUES_BEFORE_UPLOAD = PREF_CHECK_VALUES + "BeforeUpload";
+    /**
+     * The preference key to run complex tests - used before upload
+     */
     public static final String PREF_CHECK_COMPLEX_BEFORE_UPLOAD = PREF_CHECK_COMPLEX + "BeforeUpload";
+    /**
+     * The preference key to search for fixmes - used before upload
+     */
     public static final String PREF_CHECK_FIXMES_BEFORE_UPLOAD = PREF_CHECK_FIXMES + "BeforeUpload";
 
@@ -638,4 +666,7 @@
     }
 
+    /**
+     * Enables/disables the source list field
+     */
     public void handlePrefEnable() {
         boolean selected = prefCheckKeys.isSelected() || prefCheckKeysBeforeUpload.isSelected()
