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;
Digester for type (draft v4)

This will store a set of allowed types. It will, for instance, produce the same digested form of these two forms:

  • {"type": "string" }
  • { "type": [ "string" ] }
public final class DraftV4TypeDigester
    extends AbstractDigester
    private static final Digester INSTANCE = new DraftV4TypeDigester();
    public static Digester getInstance()
    {
        return ;
    }
    private DraftV4TypeDigester()
    {
        super("type"., NodeType.values());
    }
    @Override
    public JsonNode digest(final JsonNode schema)
    {
        final ObjectNode ret = .objectNode();
        final ArrayNode allowedTypes = .arrayNode();
        ret.put(allowedTypes);
        final JsonNode node = schema.get();
        final EnumSet<NodeTypetypeSet = EnumSet.noneOf(NodeType.class);
        if (node.isTextual()) // Single type
            typeSet.add(NodeType.fromName(node.textValue()));
        else // More than one type
            for (final JsonNode elementnode)
                typeSet.add(NodeType.fromName(element.textValue()));
        if (typeSet.contains(.))
            typeSet.add(.);
        /*
         * Note that as this is an enumset, order is guaranteed
         */
        for (final NodeType typetypeSet)
            allowedTypes.add(type.toString());
        return ret;
    }
New to GrepCode? Check out our FAQ X