Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2014, Francis Galiegue (fgaliegue@gmail.com)
   *
   * This software is dual-licensed under:
   *
   * - the Lesser General Public License (LGPL) version 3.0 or, at your option, any
   *   later version;
   * - the Apache Software License (ASL) version 2.0.
   *
  * The text of this file and of both licenses is available at the root of this
  * project or, if you have the jar distribution, in directory META-INF/, under
  * the names LGPL-3.0.txt and ASL-2.0.txt respectively.
  *
  * Direct link to the sources:
  *
  * - LGPL 3.0: https://www.gnu.org/licenses/lgpl-3.0.txt
  * - ASL 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt
  */
 
 package com.github.fge.jsonschema.processors.build;
 
 
 import java.util.Map;
Keyword builder processor

This takes a com.github.fge.jsonschema.processors.data.SchemaDigest as an input and outputs a com.github.fge.jsonschema.processors.data.ValidatorList. The main processor, com.github.fge.jsonschema.processors.validation.ValidationProcessor, then uses this validator list to perform actual instance validation.

 
 public final class ValidatorBuilder
     implements Processor<SchemaDigestValidatorList>
 {
     private static final String ERRMSG = "failed to build keyword validator";
 
     private final Map<StringConstructor<? extends KeywordValidator>>
         constructors;
 
     public ValidatorBuilder(final Library library)
     {
          = library.getValidators().entries();
     }
 
     public ValidatorBuilder(
         final Dictionary<Constructor<? extends KeywordValidator>> dict)
     {
          = dict.entries();
     }

    
Process the input

Parameters:
report the report to use while processing
input the input for this processor
Returns:
the output
Throws:
com.github.fge.jsonschema.core.exceptions.ProcessingException processing failed
 
     @Override
     public ValidatorList process(final ProcessingReport report,
         final SchemaDigest input)
         throws ProcessingException
     {
         final SortedMap<StringKeywordValidatormap = Maps.newTreeMap();
 
         String keyword;
         JsonNode digest;
         KeywordValidator validator;
         Constructor<? extends KeywordValidatorconstructor;
 
         for (final Map.Entry<StringJsonNodeentry:
             input.getDigests().entrySet()) {
             keyword = entry.getKey();
             digest = entry.getValue();
             constructor = .get(keyword);
             validator = buildKeyword(constructordigest);
             map.put(keywordvalidator);
         }
         return new ValidatorList(input.getContext(), map.values());
     }
 
     private static KeywordValidator buildKeyword(
         final Constructor<? extends KeywordValidatorconstructor,
        final JsonNode node)
        throws ProcessingException
    {
        try {
            return constructor.newInstance(node);
        } catch (InstantiationException e) {
            throw new ProcessingException(e);
        } catch (IllegalAccessException e) {
            throw new ProcessingException(e);
        } catch (InvocationTargetException e) {
            throw new ProcessingException(e);
        }
    }
    @Override
    public String toString()
    {
        return "validator builder";
    }
New to GrepCode? Check out our FAQ X