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.processors.syntax;
 
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import static com.github.fge.jsonschema.messages.SyntaxMessages.*;
 
 public final class SyntaxProcessor
     implements Processor<SchemaHolderSchemaHolder>
 {
     private final Map<StringSyntaxCheckercheckers;
 
     public SyntaxProcessor(final Dictionary<SyntaxCheckerdict)
     {
          = dict.entries();
     }
 
     @Override
     public SchemaHolder process(final ProcessingReport report,
         final SchemaHolder input)
         throws ProcessingException
     {
         final SchemaTree schema = input.getValue();
         final ListProcessingReport syntaxReport
             = new ListProcessingReport(report);
         validate(syntaxReportschema);
 
         for (final ProcessingMessage messagesyntaxReport.getMessages())
             report.log(message);
 
         return input;
     }
 
     private void validate(final ProcessingReport reportfinal SchemaTree tree)
         throws ProcessingException
     {
         /*
          * Only called if the schema has _not_ been validated yet
          */
         final JsonNode node = tree.getNode();
         final NodeType type = NodeType.getNodeType(node);
 
         if (type != .) {
             final ProcessingMessage msg = newMsg(tree).message()
                 .put("found"type);
             report.error(msg);
             return;
         }
 
         /*
          * Warn about ignored keywords
          */
         final Set<StringfieldNames = Sets.newHashSet(node.fieldNames());
         final Set<Stringset = Sets.newHashSet(node.fieldNames());
         set.removeAll(.keySet());
         if (!set.isEmpty())
             report.warn(newMsg(tree).message()
                 .put("ignored", Ordering.natural().sortedCopy(set)));
 
         final List<JsonPointerpointers = Lists.newArrayList();
         final Map<StringSyntaxCheckermap = Maps.newTreeMap();
         map.putAll();
         map.keySet().retainAll(fieldNames);
         for (final SyntaxChecker checkermap.values())
            checker.checkSyntax(pointersreporttree);
        for (final JsonPointer pointerpointers)
            validate(reporttree.append(pointer));
    }
    private static ProcessingMessage newMsg(final SchemaTree tree)
    {
        return new ProcessingMessage().put("schema"tree)
            .put("domain""syntax");
    }
    @Override
    public String toString()
    {
        return "syntax checker";
    }
New to GrepCode? Check out our FAQ X