package tr.com.srdc.mdr.core.model.iso11179; import java.util.List; import tr.com.srdc.mdr.core.api.ai.RepresentationClass; 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; /** * @author anil * */ public interface RepresentationClassResource extends AdministeredItemResource, RepresentationClass { /** * @return the {@link AdministrationRecordResource} of a * {@link RepresentationClassResource} * */ AdministrationRecordResource getAdministrationRecord(); /** * Set the {@link AdministrationRecordResource} of {@link RepresentationClassResource} * . * * @param representationClassAdministrationRecord * <br> * An {@link AdministrationRecordResource} of a * {@link RepresentationClassResource}. */ void setAdministrationRecord( AdministrationRecordResource representationClassAdministrationRecord); /** * Adds {@link Vocabulary#typingValueDomainRepresentationClass} property * with given value * * @param typingValueDomainRepresentationClass * value of * {@link Vocabulary#typingValueDomainRepresentationClass} * property */ void addTypingValueDomainRepresentationClass( ValueDomainResource typingValueDomainRepresentationClass); /** * * @return {@link List} of * {@link Vocabulary#typingValueDomainRepresentationClass} property * values * */ List<ValueDomainResource> getTypingValueDomainRepresentationClasses() throws MDRException; /** * Removes the {@link Vocabulary#typingValueDomainRepresentationClass} * property with given value * * @param typingValueDomainRepresentationClass * value of * {@link Vocabulary#typingValueDomainRepresentationClass} * property to be removed. */ void removeTypingValueDomainRepresentationClasses( ValueDomainResource typingValueDomainRepresentationClass); /** * Adds {@link Vocabulary#typingDataElementRepresentationClass} property * with given value * * @param typingDataElementRepresentationClass */ void addTypingDataElementRepresentationClass( DataElementResource typingDataElementRepresentationClass); /** * Removes {@link Vocabulary#typingDataElementRepresentationClass} property * with given value * * @param typingDataElementRepresentationClass * if given <code>null</code>, throws * {@link IllegalArgumentException} */ void removeTypingDataElementRepresentationClass( DataElementResource typingDataElementRepresentationClass); /** * * @return {@link List} of all * {@link Vocabulary#typingDataElementRepresentationClass} property * values * @throws MDRException */ List<DataElementResource> getTypingDataElementRepresentationClasses() throws MDRException; }