## org.biojava.ontology
Class Ontology.Impl

    java.lang.Object
      org.biojava.utils.AbstractChangeable
          org.biojava.ontology.Ontology.Impl

All Implemented Interfaces:
  Serializable, Ontology, Changeable

Enclosing interface:
  Ontology

    public static final class Ontology.Impl

extends AbstractChangeable
implements Ontology, Serializable

A basic in-memory implementation of an ontology

Since:
  1.3
Author:
  Thomas Down, Matthew Pocock
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojava.ontology.Ontology
`Ontology.Impl`

Field Summary

Fields inherited from interface org.biojava.ontology.Ontology
`TERM, TRIPLE`

Constructor Summary
`Ontology.Impl(String name, String description)`

Method Summary
`boolean` `containsTerm(String name)` Determines if this ontology currently contains a term named `name`
`boolean` `containsTriple(Term subject, Term object, Term predicate)` See if a triple exists in this ontology
`OntologyTerm` `createOntologyTerm(Ontology o)`
`Term` `createTerm(String name)` Create a new term in this ontology.
`Term` `createTerm(String name, String description)` Create a new term in this ontology.
`Term` `createTerm(String name, String description, Object[] synonyms)` Create a new term in this ontology.
`Triple` `createTriple(Term subject, Term object, Term predicate, String name, String description)` Creates a new Triple.
`Variable` `createVariable(String name, String description)` Create a new term in this ontology that is used as a variable.
`void` `deleteTerm(Term t)` Remove a term from an ontology, together with all triples which refer to it.
`String` `getDescription()` Return a human-readable description of this ontology, or the empty string if none is available
`String` `getName()` Return the name of this ontology
`OntologyOps` `getOps()` Return the associated OntologyOps.
`Term` `getTerm(String name)` Fetch the term with the specified name.
`Set<Term>` `getTerms()` Return all the terms in this ontology
`Set<Triple>` `getTriples(Term subject, Term object, Term predicate)` Return all triples from this ontology which match the supplied pattern.
`Term` `importTerm(Term t, String name)` Create a view of a term from another ontology.
`void` `setDescription(String description)` set the description of this ontology
`void` `setName(String name)` Set the name for this ontology
`String` `toString()`

Methods inherited from class org.biojava.utils.AbstractChangeable
`addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Constructor Detail

### Ontology.Impl

    public Ontology.Impl(String name,
                         String description)

Method Detail

### getName

    public String getName()

  Description copied from interface: `Ontology`
  Return the name of this ontology

  Specified by:
    `getName` in interface `Ontology`
  Returns:
    the name of the ontology

### getDescription

    public String getDescription()

  Description copied from interface: `Ontology`
  Return a human-readable description of this ontology, or the empty string if none is available

  Specified by:
    `getDescription` in interface `Ontology`
  Returns:
    the description of the term

### setDescription

    public void setDescription(String description)

  Description copied from interface: `Ontology`
  set the description of this ontology

  Specified by:
    `setDescription` in interface `Ontology`

### getTerms

    public Set<Term> getTerms()

  Description copied from interface: `Ontology`
  Return all the terms in this ontology

  Specified by:
    `getTerms` in interface `Ontology`
  Returns:
    a Set of all Terms of the ontology.

### getTerm

    public Term getTerm(String name)
                 throws NoSuchElementException

  Description copied from interface: `Ontology`
  Fetch the term with the specified name.

  Specified by:
    `getTerm` in interface `Ontology`
  Parameters:
    `name` - the name of the term
  Returns:
    The term named `name`
  Throws:
    `NoSuchElementException` - if no term exists with that name

### getTriples

    public Set<Triple> getTriples(Term subject,
                                  Term object,
                                  Term predicate)

  Description copied from interface: `Ontology`
  Return all triples from this ontology which match the supplied pattern. If any of the parameters of this method are `null`, they are treated as wildcards.

  Specified by:
    `getTriples` in interface `Ontology`
  Parameters:
    `subject` - The subject to search for, or `null`
    `object` - The object to search for, or `null`
    `predicate` - The relationship to search for, or `null`.
  Returns:
    a Set of triples

### createTerm

    public Term createTerm(String name)
                    throws AlreadyExistsException,
                           IllegalArgumentException,
                           ChangeVetoException

  Description copied from interface: `Ontology`
  Create a new term in this ontology.

  Specified by:
    `createTerm` in interface `Ontology`
  Parameters:
    `name` - The name of the term (must be unique))
  Returns:
    The newly created term.
  Throws:
    `AlreadyExistsException` - if a term of this name already exists
    `IllegalArgumentException` - if either `name` or `description` is `null`, or violates some other constraint of this implementation.
    `ChangeVetoException`

### createTerm

    public Term createTerm(String name,
                           String description)
                    throws AlreadyExistsException,
                           IllegalArgumentException,
                           ChangeVetoException

  Description copied from interface: `Ontology`
  Create a new term in this ontology.

  Specified by:
    `createTerm` in interface `Ontology`
  Parameters:
    `name` - The name of the term (must be unique)
    `description` - A human-readable description (may be empty)
  Returns:
    The newly created term.
  Throws:
    `AlreadyExistsException` - if a term of this name already exists
    `IllegalArgumentException` - if either `name` or `description` is `null`, or violates some other constraint of this implementation.
    `ChangeVetoException`

### createTerm

    public Term createTerm(String name,
                           String description,
                           Object[] synonyms)
                    throws AlreadyExistsException,
                           IllegalArgumentException,
                           ChangeVetoException

  Description copied from interface: `Ontology`
  Create a new term in this ontology.

  Specified by:
    `createTerm` in interface `Ontology`
  Parameters:
    `name` - The name of the term (must be unique)
    `description` - A human-readable description (may be empty)
    `synonyms` - Some synonyms for this term.
  Returns:
    The newly created term.
  Throws:
    `AlreadyExistsException` - if a term of this name already exists
    `IllegalArgumentException` - if either `name` or `description` is `null`, or violates some other constraint of this implementation.
    `ChangeVetoException`

### createVariable

    public Variable createVariable(String name,
                                   String description)
                            throws AlreadyExistsException,
                                   ChangeVetoException,
                                   IllegalArgumentException

  Description copied from interface: `Ontology`
  Create a new term in this ontology that is used as a variable.

  Specified by:
    `createVariable` in interface `Ontology`
  Parameters:
    `name` - The name of the term (must be unique)
    `description` - A human-readable description (may be empty)
  Returns:
    The newly created term.
  Throws:
    `AlreadyExistsException` - if a term of this name already exists
    `ChangeVetoException`
    `IllegalArgumentException` - if either `name` or `description` is `null`, or violates some other constraint of this implementation.

### createOntologyTerm

    public OntologyTerm createOntologyTerm(Ontology o)
                                    throws AlreadyExistsException,
                                           ChangeVetoException

  Throws:
    `AlreadyExistsException`
    `ChangeVetoException`

### importTerm

    public Term importTerm(Term t,
                           String name)
                    throws IllegalArgumentException,
                           ChangeVetoException

  Description copied from interface: `Ontology`
  Create a view of a term from another ontology. If the requested term has already been imported under that name, this method returns the existing RemoteTerm object. If the term that is being imported is itself a RemoteTerm instance then first unwrap the term back to the orriginal term it represents and then produce a RemoteTerm from that. If the term being imported orriginated from this ontology, then return that term unaltered.

  Specified by:
    `importTerm` in interface `Ontology`
  Parameters:
    `t` - the Term to import
    `name` - the local name to import it under, optionally null
  Returns:
    a Term
  Throws:
    `IllegalArgumentException`
    `ChangeVetoException`

### deleteTerm

    public void deleteTerm(Term t)
                    throws ChangeVetoException

  Description copied from interface: `Ontology`
  Remove a term from an ontology, together with all triples which refer to it.

  Specified by:
    `deleteTerm` in interface `Ontology`
  Throws:
    `ChangeVetoException`

### containsTerm

    public boolean containsTerm(String name)

  Description copied from interface: `Ontology`
  Determines if this ontology currently contains a term named `name`

  Specified by:
    `containsTerm` in interface `Ontology`
  Returns:
    true is contained

### containsTriple

    public boolean containsTriple(Term subject,
                                  Term object,
                                  Term predicate)

  Description copied from interface: `Ontology`
  See if a triple exists in this ontology

  Specified by:
    `containsTriple` in interface `Ontology`
  Returns:
    true if contained

### createTriple

    public Triple createTriple(Term subject,
                               Term object,
                               Term predicate,
                               String name,
                               String description)
                        throws AlreadyExistsException,
                               IllegalArgumentException,
                               ChangeVetoException,
                               NullPointerException,
                               IllegalArgumentException

  Description copied from interface: `Ontology`
  Creates a new Triple.

  Specified by:
    `createTriple` in interface `Ontology`
  Parameters:
    `subject` - the subject Term
    `object` - the object Term
    `predicate` - the predicate Term
    `name` - the name of the triple, or null
    `description` - the description of the triple, or null
  Returns:
    a new Triple over these three terms
  Throws:
    `AlreadyExistsException` - if a triple already exists with the same subject, object and predicate, regardless of the name and description
    `IllegalArgumentException` - if subject, object or predicate are not all from the same ontology
    `ChangeVetoException`
    `NullPointerException` - if subject, object or predicate are null

### getOps

    public OntologyOps getOps()

  Description copied from interface: `Ontology`
  Return the associated OntologyOps. This method should be implemented by ontology implementors to allow OntoTools to get optimized access to some usefull ontology operations. It is not intended that users will ever invoke this. A sensible dumb implementation of this would return a per-ontology instance of DefaultOps.

  Specified by:
    `getOps` in interface `Ontology`
  Returns:
    the OntologyOps instance associated with this instance.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### setName

    public void setName(String name)

  Description copied from interface: `Ontology`
  Set the name for this ontology

  Specified by:
    `setName` in interface `Ontology`
  Parameters:
    `name` - - the name