org.biojava.ontology
Interface Triple

All Superinterfaces:
Annotatable, Changeable, Term
All Known Subinterfaces:
ComparableTriple
All Known Implementing Classes:
SimpleComparableTriple, Triple.Impl

public interface Triple
extends Term

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:
ComparableTriple

Nested Class Summary
static class Triple.Impl
          Basic in-memory implementation of a Triple in an ontology
 
Nested classes/interfaces inherited from interface org.biojava.bio.Annotatable
Annotatable.AnnotationForwarder
 
Field Summary
 
Fields inherited from interface org.biojava.ontology.Term
ONTOLOGY
 
Fields inherited from interface org.biojava.bio.Annotatable
ANNOTATION
 
Method Summary
 boolean equals(Object obj)
          Check to see if an object is an equivalent Triple.
 Term getObject()
          Return the object term of this triple.
 Term getPredicate()
          Return a Term which defines the type of relationship between the subject and object terms.
 Term getSubject()
          Return the subject term of this triple
 int hashCode()
          The hashcode for a Triple.
 
Methods inherited from interface org.biojava.ontology.Term
addSynonym, getDescription, getName, getOntology, getSynonyms, removeSynonym
 
Methods inherited from interface org.biojava.bio.Annotatable
getAnnotation
 
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
 

Method Detail

getSubject

Term getSubject()
Return the subject term of this triple


getObject

Term getObject()
Return the object term of this triple.


getPredicate

Term getPredicate()
Return a Term which defines the type of relationship between the subject and object terms.


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.

Overrides:
hashCode in class Object

equals

boolean equals(Object obj)
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() &&
        to.getObject() == getObject() &&
        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.

Overrides:
equals in class Object