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.ValueDomainResource;
/**
*
* ValueDomainRelationshipAssociation represents the relation between
* <ul>
* <li>ValueDomain Relationship</li>
* <li>Association Among ValueDomain s</li>
* </ul>
* <br>
* Since {@link Abbreviation} backed by Jena TripleStore, such an holder class is
* required for n-ary relations
*
* @author anil
*
*/
public interface ValueDomainRelationshipAssociationResource extends MDRResource {
/**
* Sets {@link Vocabulary#describedByValueDomainRelationship} property with
* given value
*
* @param describedByValueDomainRelationship
*/
void setDescribedByValueDomainRelationship(
ValueDomainRelationshipResource describedByValueDomainRelationship);
/**
*
* @return Value of {@link Vocabulary#describedByValueDomainRelationship}
* property
*/
ValueDomainRelationshipResource getDescribedByValueDomainRelationship();
/**
* Adds {@link Vocabulary#relatingValueDomainRelationship} property with
* given value
*
* @param relatingValueDomainRelationship
*/
void addRelatingValueDomainRelationship(
ValueDomainResource relatingValueDomainRelationship);
/**
* Removes {@link Vocabulary#relatingValueDomainRelationship} property with
* given value
*
* @param relatingValueDomainRelationship
*/
void removeRelatingValueDomainRelationship(
ValueDomainResource relatingValueDomainRelationship);
/**
*
* @return {@link List} of all
* {@link Vocabulary#relatingValueDomainRelationship} property
* values
* @throws MDRException
*/
List<ValueDomainResource> getRelatingValueDomainRelationships()
throws MDRException;
}