package tr.com.srdc.mdr.core.api.ai;
import java.util.List;
import tr.com.srdc.mdr.core.api.composite.PermissibleValue;
import tr.com.srdc.mdr.core.model.iso11179.EnumeratedValueDomainResource;
/**
* An Enumerated Value Domain is one where the Value Domain is expressed as an
* explicit set of two or more Permissible Values. As a sub-type of Value
* Domain, an Enumerated Value Domain inherits the attributes and relationships
* of the former.
*
* @author anil
*
*/
public interface EnumeratedValueDomain extends ValueDomain {
@Override
/**
* @return the {@link EnumeratedValueDomainResource} version this instance.
*/
EnumeratedValueDomainResource asMDRResource();
/**
* @return Returns a list of all {@link PermissibleValue}s of this
* EnumeratedValueDomain
*/
List<PermissibleValue> getPermissibleValues();
/**
* Adds given {@link PermissibleValue}s to the value set of
* EnumeratedValueDomain
*
* @param pv
*/
void addPermissibleValue(PermissibleValue... pv);
// /**
// * Each EnumeratedValueDomain has a set of {@link PermissibleValue}s, at
// * least size of 2, from which {@link DataElement}s formed by this
// * ValueDoamin can take a value
// *
// * @return unmodifiable List of all PermissibleValues contained by this
// * ValueDomain
// */
// List<PermissibleValue> getPermissibleValues() throws MDRException;
}