Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2013, 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.library;
 
 
 
 import static com.github.fge.jsonschema.messages.ValidationConfigurationMessages.*;
 
 public final class KeywordBuilder
     implements Thawed<Keyword>
 {
     final String name;
     Digester digester;
     Constructor<? extends KeywordValidatorconstructor;
 
     KeywordBuilder(final String name)
     {
         if (name == null)
             throw new ValidationConfigurationError(new ProcessingMessage()
                 .message());
         this. = name;
     }
 
     KeywordBuilder(final Keyword keyword)
     {
          = keyword.name;
          = keyword.syntaxChecker;
          = keyword.digester;
          = keyword.constructor;
     }
 
     KeywordBuilder withSyntaxChecker(final SyntaxChecker syntaxChecker)
     {
         if (syntaxChecker == null)
             throw new ValidationConfigurationError(new ProcessingMessage()
                 .message());
         this. = syntaxChecker;
         return this;
     }
 
     KeywordBuilder withDigester(final Digester digester)
     {
         if (digester == null)
             throw new ValidationConfigurationError(new ProcessingMessage()
                 .message());
         this. = digester;
         return this;
     }
 
         final NodeType... other)
     {
          = new IdentityDigester(checkType(first),
             checkTypes(other));
         return this;
     }
 
     KeywordBuilder withSimpleDigester(final NodeType first,
         final NodeType... other)
     {
          = new SimpleDigester(checkType(first),
             checkTypes(other));
         return this;
     }
 
     KeywordBuilder withValidatorClass(final Class<? extends KeywordValidatorc)
     {
          = getConstructor(c);
         return this;
     }
 
     @Override
    public Keyword freeze()
    {
        return new Keyword(this);
    }
    private static Constructor<? extends KeywordValidatorgetConstructor(
        final Class<? extends KeywordValidatorc)
    {
        try {
            return c.getConstructor(JsonNode.class);
        } catch (NoSuchMethodException ignored) {
            throw new ValidationConfigurationError(new ProcessingMessage()
                .message());
        }
    }
    private static NodeType checkType(final NodeType type)
    {
        if (type == null)
            throw new ValidationConfigurationError(new ProcessingMessage()
                .message());
        return type;
    }
    private static NodeType[] checkTypes(final NodeType... types)
    {
        for (final NodeType typetypes)
            if (type == null)
                throw new ValidationConfigurationError(new ProcessingMessage()
                    .message());
        return types;
    }
New to GrepCode? Check out our FAQ X