org.biojava.utils
Class Unchangeable

java.lang.Object
  extended byorg.biojava.utils.Unchangeable
All Implemented Interfaces:
Changeable
Direct Known Subclasses:
BioFetchSequenceDB, CharacterTokenization, DASSequenceDB, DoubleAlphabet, DoubleAlphabet.DoubleRange, DoubleAlphabet.DoubleSymbol, DoubleAlphabet.SubDoubleAlphabet, FeatureHolder.EmptyFeatureHolder, FlatSequenceDB, GapDistribution, IntegerAlphabet, IntegerAlphabet.IntegerSymbol, RelabeledAlignment, SimilarityPairFeature.EmptyPairwiseAlignment, SimpleStatePath, SymbolList.EmptySymbolList, ViewSequence, WordTokenization

public class Unchangeable
extends java.lang.Object
implements Changeable

This is a utility implementation of Changeable that doesn't fire any events or keep references to any listeners. Use this when you have a final immutable class and can't be bothered to fill in all those method stubs.

Since:
1.3
Author:
Matthew Pocock

Constructor Summary
Unchangeable()
           
 
Method Summary
 void addChangeListener(ChangeListener cl)
          Add a listener that will be informed of all changes.
 void addChangeListener(ChangeListener cl, ChangeType ct)
          Add a listener that will be informed of changes of a given type.
 void addForwarder(ChangeForwarder cf, ChangeType ct)
           
 java.util.Set getForwarders(ChangeType ct)
           
 java.util.Set getListeners(ChangeType ct)
           
 boolean isUnchanging(ChangeType ct)
           A particular ChangeType can never be raised by this Changeable.
 void removeChangeListener(ChangeListener cl)
          Remove a listener that was interested in all types of changes.
 void removeChangeListener(ChangeListener cl, ChangeType ct)
          Remove a listener that was interested in a specific types of changes.
 void removeForwarder(ChangeForwarder cf, ChangeType ct)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Unchangeable

public Unchangeable()
Method Detail

addChangeListener

public final void addChangeListener(ChangeListener cl)
Description copied from interface: Changeable
Add a listener that will be informed of all changes.

Specified by:
addChangeListener in interface Changeable
Parameters:
cl - the ChangeListener to add

addChangeListener

public final void addChangeListener(ChangeListener cl,
                                    ChangeType ct)
Description copied from interface: Changeable
Add a listener that will be informed of changes of a given type.

Specified by:
addChangeListener in interface Changeable
Parameters:
cl - the ChangeListener
ct - the ChangeType it is to be informed of

getListeners

public final java.util.Set getListeners(ChangeType ct)

removeChangeListener

public final void removeChangeListener(ChangeListener cl)
Description copied from interface: Changeable
Remove a listener that was interested in all types of changes.

Specified by:
removeChangeListener in interface Changeable
Parameters:
cl - a ChangeListener to remove

removeChangeListener

public final void removeChangeListener(ChangeListener cl,
                                       ChangeType ct)
Description copied from interface: Changeable
Remove a listener that was interested in a specific types of changes.

Specified by:
removeChangeListener in interface Changeable
Parameters:
cl - a ChangeListener to remove
ct - the ChangeType that it was interested in

addForwarder

public final void addForwarder(ChangeForwarder cf,
                               ChangeType ct)

removeForwarder

public final void removeForwarder(ChangeForwarder cf,
                                  ChangeType ct)

getForwarders

public final java.util.Set getForwarders(ChangeType ct)

isUnchanging

public final boolean isUnchanging(ChangeType ct)
Description copied from interface: Changeable

A particular ChangeType can never be raised by this Changeable.

If this returns true, then it is guaranteed that change events of this type (and all child types) can never under any circumstances be fired by this Changeable instance. If it returns false, that does not mean that this type of event will or even can be raised, but that it is worth registering listeners incase.

Specified by:
isUnchanging in interface Changeable
Parameters:
ct - the ChangeType to check
Returns:
true if ChangeEvents of this type are guaranteed to never be fired