IAllowedValue.java
/*
* SPDX-FileCopyrightText: none
* SPDX-License-Identifier: CC0-1.0
*/
package gov.nist.secauto.metaschema.core.model.constraint;
import gov.nist.secauto.metaschema.core.datatype.markup.MarkupLine;
import gov.nist.secauto.metaschema.core.model.constraint.impl.DefaultAllowedValue;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.Nullable;
/**
* Represents an individual enumerated value associated with an
* {@link IAllowedValuesConstraint}.
*/
public interface IAllowedValue {
/**
* Construct a new allowed value entry for use in an
* {@link IAllowedValuesConstraint}.
*
* @param value
* the allowed value
* @param description
* a textual description of the value
* @param deprecatedVersion
* the version this value was deprecated in
* @return the new allowed value
*/
@SuppressWarnings("PMD.ShortMethodName")
@NonNull
static IAllowedValue of(
@NonNull String value,
@NonNull MarkupLine description,
@Nullable String deprecatedVersion) {
return new DefaultAllowedValue(value, description, deprecatedVersion);
}
/**
* Retrieves the enumerated value associated with this allowed value constraint
* entry.
*
* @return the value
*/
@NonNull
String getValue();
/**
* If the value is deprecated, get the deprecated version.
*
* @return the deprecated version or {@code null} if the value is not deprecated
*/
String getDeprecatedVersion();
/**
* Retrieves the enumerated value's description associated with this allowed
* value constraint entry.
*
* @return the description
*/
@NonNull
MarkupLine getDescription();
}