package tr.com.srdc.mdr.core.model.iso11179.composite; import java.util.Calendar; import java.util.List; import tr.com.srdc.mdr.core.api.composite.ValueMeaning; import tr.com.srdc.mdr.core.model.MDRException; import tr.com.srdc.mdr.core.model.MDRResource; import tr.com.srdc.mdr.core.model.Vocabulary; import tr.com.srdc.mdr.core.model.iso11179.EnumeratedConceptualDomainResource; /** * * Each member of an Enumerated Conceptual Domain has a Value Meaning that * provides its distinction from other members. In the example of ISO 3166, the * notion of each country as specified would be the Value Meanings. The * representation of Value Meanings in a registry shall be independent of (and * shall not constrain) their representation in any corresponding Value Domain. * A particular Value Meaning may have more than one means of representation by * Permissible Values — each from a distinct Enumerated Value Domain. * * @author anil * */ public interface ValueMeaningResource extends MDRResource, ValueMeaning { /** * Sets {@link Vocabulary#valueMeaningIdentifier} property with given value * * @param valueMeaningIdentifier */ void setValueMeaningIdentifier(String valueMeaningIdentifier); /** * * @return value of {@link Vocabulary#valueMeaningIdentifier} property */ String getValueMeaningIdentifier(); /** * Sets {@link Vocabulary#valueMeaningDescription} property with given value * * @param valueMeaningDescription * removes property if given <code>null</code> */ void setValueMeaningDescription(String valueMeaningDescription); /** * * @return Value of {@link Vocabulary#valueMeaningDescription} property, * <code>null</code> if such property does not exist */ String getValueMeaningDescription(); /** * Sets {@link Vocabulary#valueMeaningBeginDate} property with given value * * @param valueMeaningBeginDate */ void setValueMeaningBeginDate(Calendar valueMeaningBeginDate); /** * Value of {@link Vocabulary#valueMeaningBeginDate} property * * @return */ Calendar getValueMeaningBeginDate(); /** * Sets {@link Vocabulary#valueMeaningEndDate} property with given value * * @param valueMeaningEndDate * removes property if given <code>null</code> */ void setValueMeaningEndDate(Calendar valueMeaningEndDate); /** * * @return Value of {@link Vocabulary#valueMeaningEndDate} property, * <code>null</code> if such property does not exist */ Calendar getValueMeaningEndDate(); /** * Adds {@link Vocabulary#containedInValueMeaningSet} property with given * value * * @param containedInValueMeaningSet */ void addContainedInValueMeaningSet( EnumeratedConceptualDomainResource containedInValueMeaningSet); /** * Removes {@link Vocabulary#containedInValueMeaningSet} property with given * value * * @param containedInValueMeaningSet * throws {@link IllegalStateException} when try to remove all * values of the property */ void removeContainedInValueMeaningSet( EnumeratedConceptualDomainResource containedInValueMeaningSet); /** * * @return {@link List} of all {@link Vocabulary#containedInValueMeaningSet} * property values * @throws MDRException */ List<EnumeratedConceptualDomainResource> getContainedInValueMeaningSets() throws MDRException; /** * Adds {@link Vocabulary#usedInPermissibleValueMeaning} proprety with a * given value * * @param usedInPermissibleValueMeaning */ void addUsedInPermissibleValueMeaning( PermissibleValueResource usedInPermissibleValueMeaning); /** * Removes {@link Vocabulary#usedInPermissibleValueMeaning} with a given * Value * * @param usedInPermissibleValueMeaning */ void removeUsedInPermissibleValueMeaning( PermissibleValueResource usedInPermissibleValueMeaning); /** * - * * @return {@link List} of all * {@link Vocabulary#usedInPermissibleValueMeaning} property values * @throws MDRException */ List<PermissibleValueResource> getUsedInPermissibleValueMeanings() throws MDRException; }