Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2012, Francis Galiegue <fgaliegue@gmail.com>
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the Lesser GNU General Public License as
   * published by the Free Software Foundation, either version 3 of the
   * License, or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * Lesser GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package com.github.fge.jsonschema.metaschema;
 
 
 import java.util.Map;

Utility class for builtin keyword validators

As for other similar classes, it provides methods to retrieve validators defined by draft v3 and draft v4.

 
 
 // TODO: make package private in next version
 public final class KeywordValidators
 {
     private static final Map<StringClass<? extends KeywordValidator>> DRAFTV3;
     private static final Map<StringClass<? extends KeywordValidator>> DRAFTV4;
 
     // No making new instances of this class
     private KeywordValidators()
     {
     }
 
     static {
         ImmutableMap.Builder<StringClass<? extends KeywordValidator>> builder;
 
         String keyword;
         Class<? extends KeywordValidatorvalidator;
 
         /*
          * Common keyword validators
          */
         builder = ImmutableMap.builder();
 
         // Array
         keyword = "additionalItems";
         validator = AdditionalItemsKeywordValidator.class;
         builder.put(keywordvalidator);
 
         keyword = "minItems";
         validator = MinItemsKeywordValidator.class;
         builder.put(keywordvalidator);
 
         keyword = "maxItems";
         validator = MaxItemsKeywordValidator.class;
         builder.put(keywordvalidator);
 
         keyword = "uniqueItems";
         validator = UniqueItemsKeywordValidator.class;
         builder.put(keywordvalidator);
 
         // Integer/number
        keyword = "minimum";
        validator = MinimumKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "maximum";
        validator = MaximumKeywordValidator.class;
        builder.put(keywordvalidator);
        // Object
        keyword = "additionalProperties";
        validator = AdditionalPropertiesKeywordValidator.class;
        builder.put(keywordvalidator);
        // String
        keyword = "minLength";
        validator = MinLengthKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "maxLength";
        validator = MaxLengthKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "pattern";
        validator = PatternKeywordValidator.class;
        builder.put(keywordvalidator);
        // All
        keyword = "enum";
        validator = EnumKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "format";
        validator = FormatKeywordValidator.class;
        builder.put(keywordvalidator);
        // Build the map
        final Map<StringClass<? extends KeywordValidator>> common
            = builder.build();
        /*
         * Draft v3 specific keyword validators
         */
        builder = ImmutableMap.builder();
        // Inject all common validators
        builder.putAll(common);
        // Now inject all draft v3 specific validators
        // Integer/number
        keyword = "divisibleBy";
        validator = DivisibleByKeywordValidator.class;
        builder.put(keywordvalidator);
        // Object
        keyword = "properties";
        validator = DraftV3PropertiesKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "dependencies";
        validator = DraftV3DependenciesKeywordValidator.class;
        builder.put(keywordvalidator);
        // All
        keyword = "type";
        validator = DraftV3TypeKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "disallow";
        validator = DisallowKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "extends";
        validator = ExtendsKeywordValidator.class;
        builder.put(keywordvalidator);
        // Build the map
         = builder.build();
        /*
         * Draft v4 specific keyword validators
         */
        builder = ImmutableMap.builder();
        // Inject all common validators
        builder.putAll(common);
        // Now inject all draft v3 specific validators
        // Integer/number
        keyword = "multipleOf";
        validator = MultipleOfKeywordValidator.class;
        builder.put(keywordvalidator);
        // Object
        keyword = "minProperties";
        validator = MinPropertiesKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "maxProperties";
        validator = MaxPropertiesKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "required";
        validator = RequiredKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "dependencies";
        validator = DraftV4DependenciesKeywordValidator.class;
        builder.put(keywordvalidator);
        // All/none
        keyword = "anyOf";
        validator = AnyOfKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "allOf";
        validator = AllOfKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "oneOf";
        validator = OneOfKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "not";
        validator = NotKeywordValidator.class;
        builder.put(keywordvalidator);
        keyword = "type";
        validator = DraftV4TypeKeywordValidator.class;
        builder.put(keywordvalidator);
        // Build the map
         = builder.build();
    }

    
Return an immutable copy of keyword validators for draft v3

Returns:
a map pairing keyword names and their validator classes
    static Map<StringClass<? extends KeywordValidator>> draftV3()
    {
        return ;
    }

    
Return an immutable copy of keyword validators for draft v4

Returns:
a map pairing keyword names and their validator classes
    static Map<StringClass<? extends KeywordValidator>> draftV4()
    {
        return ;
    }
New to GrepCode? Check out our FAQ X