// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.sdk.internal.protocolparser;
import java.util.Set;
/**
* Implementation of {@link JsonValueCondition} for enum-typed values.
* User is supposed to subclass it and specify allowed enum constants in constructor.
* @param <T> type of value
*/
public abstract class EnumValueCondition<T extends Enum<T>> implements JsonValueCondition<T> {
private final Set<T> allowedValues;
protected EnumValueCondition(Set<T> allowedValues) {
this.allowedValues = allowedValues;
}
public boolean conforms(T value) {
return allowedValues.contains(value);
}
public static String decorateEnumConstantName(String enumValue) {
return enumValue.toUpperCase().replace("-", "_");
}
}