package tr.com.srdc.mdr.core.model.iso11179.composite;
import java.util.List;
import tr.com.srdc.mdr.core.model.Abbreviation;
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.DataElementConceptResource;
/**
*
* DataElementConceptRelationshipAssociation represents the relation between
* <ul>
* <li>Data Element Concept Relationship</li>
* <li>Association Among Data Element Concepts</li>
* </ul>
* <br>
* Since {@link Abbreviation} backed by Jena TripleStore, such an holder class is
* required for n-ary relations
*
* @author anil
*
*/
public interface DataElementConceptRelationshipAssociationResource extends
MDRResource {
/**
* Sets {@link Vocabulary#describedByDataElementConceptRelationship}
* property with given value
*
* @param describedByDataElementConceptRelationship
*/
void setDescribedByDataElementConceptRelationship(
DataElementConceptRelationshipResource describedByDataElementConceptRelationship);
/**
*
* @return Value of
* {@link Vocabulary#describedByDataElementConceptRelationship}
* property
*/
DataElementConceptRelationshipResource getDescribedByDataElementConceptRelationship();
/**
* Adds {@link Vocabulary#relatingDataElementConceptRelationship} property
* with given value
*
* @param relatingDataElementConceptRelationship
*/
void addRelatingDataElementConceptRelationship(
DataElementConceptResource relatingDataElementConceptRelationship);
/**
* Removes {@link Vocabulary#relatingDataElementConceptRelationship}
* property with given value
*
* @param relatingDataElementConceptRelationship
*/
void removeRelatingDataElementConceptRelationship(
DataElementConceptResource relatingDataElementConceptRelationship);
/**
*
* @return {@link List} of all
* {@link Vocabulary#relatingDataElementConceptRelationship}
* property values
* @throws MDRException
*/
List<DataElementConceptResource> getRelatingDataElementConceptRelationships()
throws MDRException;
}