Package org.biojava.ontology
Interface Triple
- All Superinterfaces:
Annotatable
,Changeable
,Term
- All Known Subinterfaces:
ComparableTriple
- All Known Implementing Classes:
SimpleComparableTriple
,Triple.Impl
A triple in an ontology. This is two terms and a relationship between
them, similar to RDF and other similar logic systems.
For documentation purposes, a Triple may provide a name. However, a Triple may also be named as "(subject, object, predicate)" if no specific name is provided.
- Since:
- 1.4
- Author:
- Thomas Down, Matthew Pocock
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final class
Basic in-memory implementation of a Triple in an ontology This can be used to implement Ontology.createTripleNested classes/interfaces inherited from interface org.biojava.bio.Annotatable
Annotatable.AnnotationForwarder
-
Field Summary
Fields inherited from interface org.biojava.bio.Annotatable
ANNOTATION
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Check to see if an object is an equivalent Triple.Return the object term of this triple.Return a Term which defines the type of relationship between the subject and object terms.Return the subject term of this tripleint
hashCode()
The hashcode for a Triple.Methods inherited from interface org.biojava.bio.Annotatable
getAnnotation
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
Methods inherited from interface org.biojava.ontology.Term
addSynonym, getDescription, getName, getOntology, getSynonyms, removeSynonym, setDescription
-
Method Details
-
getSubject
Return the subject term of this triple- Returns:
- the subject term
-
getObject
Return the object term of this triple.- Returns:
- the object term
-
getPredicate
Return a Term which defines the type of relationship between the subject and object terms.- Returns:
- the predicate
-
hashCode
int hashCode()The hashcode for a Triple.This must be implemented as:
return getSubject().hashCode() + 31 * getObject().hashCode() + 31 * 31 * getPredicate().hashCode();
If you do not implement hashcode in this way then you have no guarantee that your Triple objects will be found in an ontology and that they will not be duplicated. -
equals
Check to see if an object is an equivalent Triple.Two triples are equivalent if they have the same subject, object and predicate fields.
if (! (o instanceof Triple)) { return false; } Triple to = (Triple) o; return to.getSubject() == getSubject() invalid input: '&'invalid input: '&' to.getObject() == getObject() invalid input: '&'invalid input: '&' to.getPredicate() == getPredicate();
If you do not implement equals in this way then you have no guarantee that your Triple objects will be found in an ontology and that they will not be duplicated.
-