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.keyword.digest.draftv4;
 
 
 import java.util.List;
 import java.util.Map;

Digester for dependencies

This stores property dependencies separately from schema dependencies.

 
 public final class DraftV4DependenciesDigester
     extends AbstractDigester
 {
     private static final Digester INSTANCE = new DraftV4DependenciesDigester();
 
     public static Digester getInstance()
     {
         return ;
     }
 
     private DraftV4DependenciesDigester()
     {
         super("dependencies".);
     }
 
     @Override
     public JsonNode digest(final JsonNode schema)
     {
         final ObjectNode ret = .objectNode();
 
         final ObjectNode propertyDeps = .objectNode();
         ret.put("propertyDeps"propertyDeps);
 
         final ArrayNode schemaDeps = .arrayNode();
         ret.put("schemaDeps"schemaDeps);
 
         final List<Stringlist = Lists.newArrayList();
 
         final Map<StringJsonNodemap
             = JacksonUtils.asMap(schema.get());
 
         String key;
         JsonNode value;
 
         for (final Map.Entry<StringJsonNodeentrymap.entrySet()) {
             key = entry.getKey();
             value = entry.getValue();
             if (value.isObject()) // schema dep
                 list.add(key);
             else // property dep
                 propertyDeps.put(keysortedSet(value));
         }
 
         for (final String s: Ordering.natural().sortedCopy(list))
             schemaDeps.add(s);
 
         return ret;
     }
 
     private static JsonNode sortedSet(final JsonNode node)
     {
         final List<JsonNodelist = Lists.newArrayList(node);
 
         Collections.sort(listnew Comparator<JsonNode>()
         {
             @Override
             public int compare(final JsonNode o1final JsonNode o2)
             {
                return o1.textValue().compareTo(o2.textValue());
            }
        });
        final ArrayNode ret = .arrayNode();
        ret.addAll(list);
        return ret;
    }
New to GrepCode? Check out our FAQ X