Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Copyright (c) 2012, Francis Galiegue <>
  * 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
 * 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 <>.
package com.github.fge.jsonschema.keyword.common;
Validator for the enum keyword

Note: validation of numeric array elements conform to the definition of equality by JSON Schema. That is, 1 and 1.0 are considered equal.

public final class EnumKeywordValidator
    extends KeywordValidator
    private static final Equivalence<JsonNodeEQUIVALENCE
        = JsonNodeEquivalence.getInstance();
    private final JsonNode enumNode;
    private final Set<Equivalence.Wrapper<JsonNode>> enumValues;
    public EnumKeywordValidator(final JsonNode schema)
        super("enum", NodeType.values());
         = schema.get();
        final ImmutableSet.Builder<Equivalence.Wrapper<JsonNode>> builder
            = ImmutableSet.builder();
        for (final JsonNode value)
    public void validate(final ValidationContext context,
        final ValidationReport reportfinal JsonNode instance)
        if (.contains(.wrap(instance)))
        final Message.Builder msg = newMsg().addInfo("value"instance)
            .addInfo("enum").setMessage("value not found in enum");
    public String toString()
         * Enum values may be arbitrarily complex: we therefore choose to only
         * print the number of possible values instead of each possible value.
         * By virtue of syntax validation, we also know that enumValues will
         * never be empty.
        return  + ": " + .size() + " possible value(s)";
New to GrepCode? Check out our FAQ X