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.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