## org.biojavax.bio.seq
Class SimpleRichFeatureRelationship

    java.lang.Object
      org.biojava.utils.AbstractChangeable
          org.biojavax.bio.seq.SimpleRichFeatureRelationship

All Implemented Interfaces:
  Comparable, Changeable, RichFeatureRelationship

    public class SimpleRichFeatureRelationship

extends AbstractChangeable
implements RichFeatureRelationship

Represents a relationship between two features that is described by a term.

Since:
  1.5
Author:
  Richard Holland, Mark Schreiber

Field Summary

Fields inherited from interface org.biojavax.bio.seq.RichFeatureRelationship
`RANK`

Constructor Summary
`protected` `SimpleRichFeatureRelationship()`
`` `SimpleRichFeatureRelationship(RichFeature object, RichFeature subject, ComparableTerm term, int rank)` Creates a new instance of SimpleRichFeatureRelationship.

Method Summary
`int` `compareTo(Object o)` Relations are compared first by rank, then object, subject, then finally term.
`boolean` `equals(Object obj)` Relations are equal if their objects, subjects and terms are equal.
`static ComparableTerm` `getContainsTerm()` Gets the default CONTAINS term used for defining the relationship between features.
`Integer` `getId()` Gets the Hibernate ID.
`RichFeature` `getObject()` Returns the object of this relationship (ie.
`int` `getRank()` Gets the rank of this relationship.
`RichFeature` `getSubject()` Gets the feature that this relationship refers to.
`ComparableTerm` `getTerm()` Gets the term that describes this relationship.
`int` `hashCode()`
`void` `setId(Integer id)` Sets the Hibernate ID.
`void` `setRank(int rank)` Sets the rank of this relationship.
`String` `toString()` Form: "(#rank) term(object,subject)"

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, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

Constructor Detail

### SimpleRichFeatureRelationship

    public SimpleRichFeatureRelationship(RichFeature object,
                                         RichFeature subject,
                                         ComparableTerm term,
                                         int rank)

  Creates a new instance of SimpleRichFeatureRelationship.

  Parameters:
    `subject` - The subject RichFeature.
    `term` - The relationship term.
    `rank` - the rank of the relationship.

### SimpleRichFeatureRelationship

    protected SimpleRichFeatureRelationship()

Method Detail

### getContainsTerm

    public static ComparableTerm getContainsTerm()

  Gets the default CONTAINS term used for defining the relationship between features.

  Returns:
    the default CONTAINS term.

### setRank

    public void setRank(int rank)
                 throws ChangeVetoException

  Sets the rank of this relationship.

  Specified by:
    `setRank` in interface `RichFeatureRelationship`
  Parameters:
    `rank` - Value of property rank.
  Throws:
    `ChangeVetoException` - if the rank is untasty.

### getRank

    public int getRank()

  Gets the rank of this relationship.

  Specified by:
    `getRank` in interface `RichFeatureRelationship`
  Returns:
    Value of property rank.

### getObject

    public RichFeature getObject()

  Returns the object of this relationship (ie. the feature which this relationship starts from). This is an immutable property set by the constructor of an instantiating class.

  Specified by:
    `getObject` in interface `RichFeatureRelationship`
  Returns:
    Value of property object.

### getSubject

    public RichFeature getSubject()

  Gets the feature that this relationship refers to. This is set at constructor time and is immutable.

  Specified by:
    `getSubject` in interface `RichFeatureRelationship`
  Returns:
    Value of property subject.

### getTerm

    public ComparableTerm getTerm()

  Gets the term that describes this relationship. This is set at constructor time and is immutable.

  Specified by:
    `getTerm` in interface `RichFeatureRelationship`
  Returns:
    Value of property term.

### compareTo

    public int compareTo(Object o)

  Relations are compared first by rank, then object, subject, then finally term.

  Specified by:
    `compareTo` in interface `Comparable`

### equals

    public boolean equals(Object obj)

  Relations are equal if their objects, subjects and terms are equal.

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  Form: "(#rank) term(object,subject)"

  Overrides:
    `toString` in class `Object`

### getId

    public Integer getId()

  Gets the Hibernate ID. Should be used with caution.

  Returns:
    the Hibernate ID, if using Hibernate.

### setId

    public void setId(Integer id)

  Sets the Hibernate ID. Should be used with caution.

  Parameters:
    `id` - the Hibernate ID, if using Hibernate.