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.draftv3;
 
 
 import java.util.List;
 import java.util.Map;
Digester for dependencies

This stores property dependencies separately from schema dependencies.

 
 public final class DraftV3DependenciesDigester
     extends AbstractDigester
 {
     private static final Digester INSTANCE = new DraftV3DependenciesDigester();
 
     public static Digester getInstance()
     {
         return ;
     }
 
     private DraftV3DependenciesDigester()
     {
         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;
         NodeType type;
 
         for (final Map.Entry<StringJsonNodeentrymap.entrySet()) {
             key = entry.getKey();
             value = entry.getValue();
             type = NodeType.getNodeType(value);
             switch (type) {
                 case :
                     list.add(key);
                     break;
                 case :
                     final JsonNode node = sortedSet(value);
                     if (node.size() != 0)
                         propertyDeps.put(keynode);
                     break;
                 case :
                     propertyDeps.put(key.arrayNode()
                         .add(value.textValue()));
             }
         }
 
         for (final String s: Ordering.natural().sortedCopy(list))
             schemaDeps.add(s);
 
        return ret;
    }
    private static JsonNode sortedSet(final JsonNode node)
    {
        final SortedSet<JsonNodeset
            = Sets.newTreeSet(new Comparator<JsonNode>()
            {
                @Override
                public int compare(final JsonNode o1final JsonNode o2)
                {
                    return o1.textValue().compareTo(o2.textValue());
                }
            });
        set.addAll(Sets.newHashSet(node));
        final ArrayNode ret = .arrayNode();
        ret.addAll(set);
        return ret;
    }
New to GrepCode? Check out our FAQ X