package tr.com.srdc.mdr.core.model.iso11179.composite;
import java.util.List;
import tr.com.srdc.mdr.core.api.composite.ClassificationSchemeItemRelationship;
import tr.com.srdc.mdr.core.impl.composite.ClassificationSchemeItemAssociationImpl;
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;
/**
* A Classification Scheme Item Relationship associates two or more
* Classification Scheme Items within a Classification Scheme. Such
* relationships serve to assist navigation through a large number of
* Classification Scheme Items.
* <p>
* Since {@link Abbreviation} is backed by Jena Triple Store, Classification Scheme
* Item Relationship and Classification Scheme Items are associated by use of
* {@link ClassificationSchemeItemAssociationImpl}
*
* @author anil
*
*/
public interface ClassificationSchemeItemRelationshipResource extends MDRResource,
ClassificationSchemeItemRelationship {
/**
* Sets
* {@link Vocabulary#classificationSchemeItemRelationshipTypeDescription}
* property with given value
*
* @param classificationSchemeItemRelationshipTypeDescription
* value of
* {@link Vocabulary#classificationSchemeItemRelationshipTypeDescription}
* property, <br>
*/
void setClassificationSchemeItemRelationshipTypeDescription(
String classificationSchemeItemRelationshipTypeDescription);
/**
*
* @return {@link String} value of
* {@link Vocabulary#classificationSchemeItemValue} property, <br>
*/
String getClassificationSchemeItemRelationshipTypeDescription();
/**
* Adds {@link Vocabulary#csiRelationshipAssociation} property with given
* value
*
* @param csiRelationshipAssociation
* value of {@link Vocabulary#csiRelationshipAssociation}
* property
*/
void addCSIRelationshipAssocation(
ClassificationSchemeItemAssociationImpl csiRelationshipAssociation);
/**
* Removes the {@link Vocabulary#csiRelationshipAssociation} property with
* given value
*
* @param csiRelationshipAssociation
* value of {@link Vocabulary#csiRelationshipAssociation}
* property to be removed
*/
void removeCSIRelationshipAssocation(
ClassificationSchemeItemAssociationImpl csiRelationshipAssociation);
/**
*
* @return {@link List} of {@link Vocabulary#csiRelationshipAssociation}
* property values
*/
List<ClassificationSchemeItemAssociationImpl> getCSIRelationshipAssocations()
throws MDRException;
}