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 both licenses is available under the src/resources/ directory of
  * this project (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.keyword.validator.draftv3;
 
Keyword validator for draft v3's type
 
 public final class DraftV3TypeValidator
 {
     public DraftV3TypeValidator(final JsonNode digest)
     {
         super("type"digest);
     }
 
     @Override
     public void validate(final Processor<FullDataFullDataprocessor,
         final ProcessingReport reportfinal MessageBundle bundle,
         final 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.getLogLevel(),
                 .);
             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(databundle"err.common.typeNoMatch")
                 .putArgument("found"type)
                .putArgument("expected"toArrayNode()));
        if (!.isEmpty())
            report.error(newMsg(databundle"err.common.schema.noMatch")
                .putArgument("nrSchemas".size())
                .put("reports"fullReport));
    }
New to GrepCode? Check out our FAQ X