package org.nexml.model; import java.math.BigDecimal; import java.math.BigInteger; import java.net.URI; import java.util.Calendar; import java.util.Date; import java.util.Set; import java.util.UUID; import javax.xml.datatype.Duration; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; import javax.xml.transform.Source; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node; /** * <otu> * <meta href="study/TB2:S20" id="meta2914" rel="rdfs:isDefinedBy" xsi:type="nex:ResourceMeta"/> * <meta content="4620" datatype="xsd:integer" id="meta2916" property="tb:identifier.taxonVariant.tb1" xsi:type="nex:LiteralMeta"/> * </otu> * @param <T> */ public interface Annotation extends Annotatable { /** * Returns a namespaced predicate, e.g. dc:name * @return a namespaced string */ public String getProperty(); /** * Sets a CURIE predicate, e.g. dc:name * @param property */ public void setProperty(String property); /** * Sets a CURIE predicate when object is a URI * @param rel */ public void setRel(String rel); /** * Gets CURIE predicate when object is a URI * @return */ public String getRel(); /** * From a triple (subject, predicate, object) returns * the object. Could be a string literal, or a resource * identifier, or an encapsulation of a more complex * structure (e.g. recursively nested annotation objects, * other xml, rdf/xml). * @return */ public Object getValue(); /** * From a triple (subject, predicate, object) sets * the object. Could be a string literal, or a resource * identifier, or an encapsulation of a more complex * structure (e.g. recursively nested annotation objects, * other xml, rdf/xml). * @param value */ public void setValue(Set<Annotation> value); public void setValue(Annotation value); public void setValue(Object value); public void setValue(NodeList value); public void setValue(Node value); public void setValue(Element value); public void setValue(URI value); public void setValue(BigDecimal value); public void setValue(BigInteger value); public void setValue(Boolean value); public void setValue(Double value); public void setValue(Float value); public void setValue(Integer value); public void setValue(Long value); public void setValue(Short value); public void setValue(String value); public void setValue(QName value); public void setValue(Byte value); public void setValue(Calendar value); public void setValue(Date value); public void setValue(Byte[] value); public void setValue(UUID value); public void setValue(java.awt.Image value); public void setValue(Duration value); public void setValue(Source value); public void setValue(XMLGregorianCalendar value); public void setValue(java.lang.Character value); public boolean isValueMapped(Class<?> valueClass); public QName getXsdType(); public URI getPredicateNamespace(); }