public interface IHasMetadata {
public Iterator getMetadataSet() throws IdASException; //
Iterator of IMetadata
public IMetadata getMetadata(URI metadataID) throws
IdASException;
IMetadata addMetadata(URI metadataID) throws IdASException,
InvalidMetadataException;
IMetadata addMetadata(IMetadata copyFrom) throws IdASException;
}
/**
* not intended to be instantiated (only used as a
super-interface)
*/
public interface IValue extends IHasMetadata {
public boolean isSimple() throws IdASException;
public URI getType() throws IdASException; // like string, int, address
void remove() throws IdASException;
}
public interface ISimpleValue extends IValue {
public String getLexical() throws IdASException;
public String getCanonical() throws IdASException;
public Object getData() throws IdASException;
void setData(Object data) throws IdASException;
}
public interface IComplexValue extends IValue, IHasAttributes {
}
public interface IAttribute extends IHasMetadata {
public URI getAttrID() throws IdASException; // like hobbies,
hatSize, homeAddress
public Iterator getValues() throws IdASException;
IValue addValue(URI type) throws IdASException, InvalidTypeException;
IValue addValue(IValue copyFrom) throws IdASException;
ISimpleValue addSimpleValue(URI type, Object data) throws
IdASException, InvalidTypeException;
IComplexValue addComplexValue(URI type) throws IdASException,
InvalidTypeException;
void remove() throws IdASException;
public IAttributeModel getModel() throws IdASException;
public boolean isSingleValued() throws IdASException;
}
public interface ISingleValuedAttribute extends IAttribute {
public IValue getValue() throws IdASException;
}
public interface IHasAttributes
{
public Iterator getAttributes() throws IdASException;
public IAttribute getAttribute(URI attrID) throws IdASException;
IAttribute addAttribute(URI attrID) throws IdASException,
InvalidAttributeException;
IAttribute addAttribute(IAttribute copyFrom) throws IdASException;
}
public interface IDigitalSubject extends IHasMetadata,
IHasAttributes
{
public IContext getContext() throws IdASException;
public String getSubjectID() throws IdASException;
public URI getType() throws IdASException;
void remove() throws IdASException;
void applyUpdates() throws IdASException; // this is moving to IContext
public IDigitalSubjectModel getModel() throws IdASException;
}
<snip>