package tr.com.srdc.mdr.core.model.iso11179.composite;
import java.util.List;
import tr.com.srdc.mdr.core.api.composite.DataElementExample;
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.DataElementResource;
/**
*
* A Data Element may have Data Element Examples that are used to provide
* representative samples of the Data Element.
*
* @author anil
*
*/
public interface DataElementExampleResource extends MDRResource,
DataElementExample {
/**
* sets {@link Vocabulary#dataElementExampleItem} property with given value
*
* @param dataElementExampleItem
*/
void setDataElementExampleItem(String dataElementExampleItem);
/**
*
* @return value of {@link Vocabulary#dataElementExampleItem} property
*/
String getDataElementExampleItem();
/**
* Adds {@link Vocabulary#exemplifyingExemplification} property with given
* value
*
* @param exemplifyingExemplification
* if given <code>null</code> throws
* {@link IllegalArgumentException}
*/
void addExemplifyingExemplification(
DataElementResource exemplifyingExemplification);
/**
* removes {@link Vocabulary#exemplifyingExemplification} with given value
*
* @param exemplifyingExemplification
* there should be at least 1 value of the property, if try to
* remove all, throws {@link IllegalArgumentException}
*/
void removeExemplifyingExemplification(
DataElementResource exemplifyingExemplification);
/**
*
* @return List of all {@link Vocabulary#exemplifyingExemplification}
* property values
* @throws MDRException
*/
List<DataElementResource> getExemplifyingExemplifications() throws MDRException;
}