package tr.com.srdc.mdr.core.model.iso11179; import java.util.List; import tr.com.srdc.mdr.core.api.ai.ValueDomain; import tr.com.srdc.mdr.core.model.Abbreviation; import tr.com.srdc.mdr.core.model.MDRException; import tr.com.srdc.mdr.core.model.Vocabulary; import tr.com.srdc.mdr.core.model.iso11179.composite.AdministrationRecordResource; import tr.com.srdc.mdr.core.model.iso11179.composite.DatatypeResource; import tr.com.srdc.mdr.core.model.iso11179.composite.UnitOfMeasureResource; import tr.com.srdc.mdr.core.model.iso11179.composite.ValueDomainRelationshipAssociationResource; /** * A set of Permissible Values. The Value Domain provides representation, but * has no INDication as to what Data Element Concept the Values may be * associated with nor what the Values mean. The Permissible Values may either * be enumerated or expressed via a description. * * @author pacaci * @author mert * @author serike * @author alp * */ public interface ValueDomainResource extends AdministeredItemResource, ValueDomain { /** * @return the {@link AdministrationRecordResource} of a {@link ValueDomainResource} . */ AdministrationRecordResource getAdministrationRecord(); /** * Set the {@link AdministrationRecordResource} of {@link ValueDomainResource}. * * @param valueDomainAdministrationRecord * <br> * An {@link AdministrationRecordResource} of a {@link ValueDomainResource} * . */ void setAdministrationRecord( AdministrationRecordResource valueDomainAdministrationRecord); /** * Set the {@link Vocabulary#valueDomainDatatype} of this * {@link ValueDomainResource}. * * @param valueDomainDatatype * <br> * An {@link DatatypeResource} of a {@link ValueDomainResource}. */ void setValueDomainDatatype(DatatypeResource valueDomainDatatype); /** * * @return the {@link DatatypeResource} of a {@link ValueDomainResource}. */ DatatypeResource getValueDomainDatatype(); /** * Set the {@link Vocabulary#valueDomainUnitOfMeasure} of this * {@link ValueDomainResource}. * * @param valueDomainUnitOfMeasure * <br> * An {@link UnitOfMeasureResource} of a {@link ValueDomainResource}. */ void setValueDomainUnitOfMeasure(UnitOfMeasureResource valueDomainUnitOfMeasure); /** * * @return the {@link UnitOfMeasureResource} of a {@link ValueDomainResource}. */ UnitOfMeasureResource getValueDomainUnitOfMeasure(); /** * Set the {@link Vocabulary#valueDomainMaximumCharacterQuantity} of this * {@link ValueDomainResource}. * * @param valueDomainMaximumCharacterQuantity */ void setValueDomainMaximumCharacterQuantity( Integer valueDomainMaximumCharacterQuantity); /** * * @return the {@link Vocabulary#valueDomainMaximumCharacterQuantity} of a * {@link ValueDomainResource}. */ Integer getValueDomainMaximumCharacterQuantity(); /** * Set the {@link Vocabulary#valueDomainFormat} of this * {@link ValueDomainResource} * * @param valueDomainFormat */ void setValueDomainFormat(String valueDomainFormat); /** * * @return the {@link Vocabulary#valueDomainFormat} of a * {@link ValueDomainResource} */ String getValueDomainFormat(); /** * Set the {@link ConceptualDomainResource} of {@link ValueDomainResource}. * * @param representingConceptualDomainRepresentation */ void setRepresentingConceptualDomainRepresentation( ConceptualDomainResource representingConceptualDomainRepresentation); /** * @return the {@link ConceptualDomainResource} of a {@link ValueDomainResource}. */ ConceptualDomainResource getRepresentingConceptualDomainRepresentation(); /** * Adds {@link Vocabulary#representingDataElementRepresentation} property * with given value * * @param submitting * value of * {@link Vocabulary#representingDataElementRepresentation} * property */ void addRepresentingDataElementRepresentation( DataElementResource representingDataElementRepresentation); /** * * @return {@link List} of * {@link Vocabulary#representingDataElementRepresentation} property * values */ List<DataElementResource> getRepresentingDataElementRepresentations() throws MDRException; /** * Removes the {@link Vocabulary#representingDataElementRepresentation} * property with given value * * @param providing * value of * {@link Vocabulary#representingDataElementRepresentation} * property to be removed. */ void removeRepresentingDataElementRepresentation( DataElementResource representingDataElementRepresentation); /** * Set the {@link RepresentationClassResource} of {@link ValueDomainResource}. * * @param typedByValueDomainRepresentationClass * <br> * Iff given value null , removes it from {@link Abbreviation}. */ void setTypedByValueDomainRepresentationClass( RepresentationClassResource typedByValueDomainRepresentationClass); /** * * @return the {@link RepresentationClassResource} of a {@link ValueDomainResource}. */ RepresentationClassResource getTypedByValueDomainRepresentationClass(); /** * Adds {@link Vocabulary#relatedToValueDomainRelationship} property with * given value * * @param relatedToValueDomainRelationship */ void addRelatedToValueDomainRelationship( ValueDomainRelationshipAssociationResource relatedToValueDomainRelationship); /** * Removes {@link Vocabulary#relatedToValueDomainRelationship} property with * given value * * @param relatedToValueDomainRelationship */ void removeRelatedToValueDomainRelationship( ValueDomainRelationshipAssociationResource relatedToValueDomainRelationship); /** * * @return {@link List} of all * {@link Vocabulary#relatedToValueDomainRelationship} property * values * @throws MDRException */ List<ValueDomainRelationshipAssociationResource> getRelatedToValueDomainRelationships() throws MDRException; }