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.keyword.validator.draftv3;
 
 
 import static com.github.fge.jsonschema.messages.KeywordValidationMessages.*;
 
 public final class DraftV3TypeValidator
 {
     public DraftV3TypeValidator(final JsonNode digest)
     {
         super("type"digest);
     }
 
     @Override
     public void validate(final Processor<FullDataProcessingReportprocessor,
         final ProcessingReport reportfinal FullData data)
         throws ProcessingException
     {
         final JsonNode instance = data.getInstance().getNode();
         final NodeType type = NodeType.getNodeType(instance);
 
         /*
          * Check the primitive type first
          */
         final boolean primitiveOK = .contains(type);
 
         if (primitiveOK)
             return;
 
         /*
          * If not OK, check the subschemas
          */
         final ObjectNode fullReport = .objectNode();
         final SchemaTree tree = data.getSchema();
         final JsonPointer schemaPointer = tree.getPointer();
 
         ListProcessingReport subReport;
         JsonPointer ptr;
         FullData newData;
         int nrSuccess = 0;
 
         for (final int index) {
             subReport = new ListProcessingReport(report);
             subReport.setExceptionThreshold(.);
             ptr = schemaPointer.append(JsonPointer.of(index));
             newData = data.withSchema(tree.setPointer(ptr));
             processor.process(subReportnewData);
             fullReport.put(ptr.toString(), subReport.asJson());
             if (subReport.isSuccess())
                 nrSuccess++;
         }
 
         /*
          * If at least one matched, OK
          */
         if (nrSuccess >= 1)
             return;
 
         /*
          * If no, failure on both counts. We reuse anyOf's message for subschema
          * failure. Also, take care not to output an error if there wasn't any
          * primitive types...
          */
         if (!.isEmpty())
             report.error(newMsg(data).message().put("expected")
                 .put("found"type));
 
         if (!.isEmpty())
             report.error(newMsg(data).message()
                 .put("reports"fullReport));
    }
New to GrepCode? Check out our FAQ X