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