## org.biojava.utils
Interface Changeable

All Known Subinterfaces:
  Alignment, Alphabet, AlphabetIndex, Annotatable, Annotation, ARAlignment, AtomicSymbol, BasisSymbol, BioEntry, BioEntryRelationship, Comment, ComparableOntology, ComparableTerm, ComparableTriple, ComponentFeature, Count, CrossOverFunction, CrossRef, Distribution, DocRef, DocRefAuthor, DotState, EmissionState, Feature, FeatureHolder, FeatureTypes.Repository, FeatureTypes.Type, FiniteAlphabet, FramedFeature, GappedSequence, GappedSymbolList, GeneticAlgorithm, GFF3Record, HomologyFeature, MarkovModel, ModelInState, MutationFunction, Namespace, NCBITaxon, Note, Ontology, OntologyTerm, OrderNDistribution, Organism, Population, RankedCrossRef, RankedCrossRefable, RankedDocRef, RealizingFeatureHolder, RemoteFeature, RemoteTerm, RestrictionSite, RichAnnotatable, RichAnnotation, RichFeature, RichFeatureRelationship, RichLocation, RichSequence, RichSequenceDB, RichSequenceDBLite, SeqSimilaritySearchHit, SeqSimilaritySearchResult, SeqSimilaritySearchSubHit, Sequence, SequenceDB, SequenceDBLite, SimilarityPairFeature, State, StatePath, StrandedFeature, Symbol, SymbolList, SymbolTokenization, Taxon, Term, Triple, UnequalLengthAlignment, UnigeneCluster, UnigeneDB, Variable

All Known Implementing Classes:
  AbiTraceRenderer, AbstractAlphabet, AbstractAnnotation, AbstractBeadRenderer, AbstractBioEntryDB, AbstractChangeable, AbstractCrossOverFunction, AbstractDistribution, AbstractFeatureHolder, AbstractGeneticAlgorithm, AbstractMutationFunction, AbstractOrderNDistribution, AbstractOrganism, AbstractOrthologueSet, AbstractOrthoPairSet, AbstractPeptideDigestRenderer, AbstractPopulation, AbstractRichSequenceDB, AbstractSequenceDB, AbstractSymbol, AbstractSymbolList, AbstractTaxon, AbstractTerm, AbstractULAlignment, AbstractULAlignment.SubULAlignment, AlignmentRenderer, AlternateTokenization, AnnotatedSequenceDB, AnnotationChanger, AnnotationRenamer, AssembledSymbolList, BasicFeatureRenderer, BeanAsAnnotation, BioFetchSequenceDB, BioSQLBioEntryDB, BioSQLRichSequenceDB, BioSQLSequenceDB, BumpedRenderer, CachingSequenceDB, CharacterTokenization, ChunkedSymbolList, CircularView, CompoundRichLocation, CrosshairRenderer, CrossOverFunction.NoCross, CrossProductTokenization, DAS, DASSequence, DASSequenceDB, DistributedSequenceDB, DoubleAlphabet, DoubleAlphabet.DoubleRange, DoubleAlphabet.DoubleSymbol, DoubleAlphabet.SubDoubleAlphabet, DoubleTokenization, DummySequence, DummySequenceDB, DummySymbolList, EllipticalBeadRenderer, EmptyRichAnnotation, EmptyRichLocation, FeatureBlockSequenceRenderer, FeatureHolder.EmptyFeatureHolder, FeatureLabelRenderer, FeatureTypes.RepositoryImpl, FilteringRenderer, FlatSequenceDB, FlexibleAlignment, FullHmmerProfileHMM, FundamentalAtomicSymbol, GapDistribution, GappedRenderer, GenbankRichSequenceDB, GenpeptRichSequenceDB, GFF3Record.Impl, GlyphFeatureRenderer, HashBioEntryDB, HashRichSequenceDB, HashSequenceDB, HmmerProfileHMM, IndexedCount, IndexedSequenceDB, InfinitelyAmbiguousSymbolList, IntegerAlphabet, IntegerAlphabet.IntegerSymbol, IntegerAlphabet.SubIntegerAlphabet, IntegerOntology, IntegerOntology.IntTerm, IntegerTokenization, LabelledSequenceRenderer, LazyFeatureHolder, LazyFilterFeatureHolder, MagicalState, MergeAnnotation, MergeFeatureHolder, MultiLineRenderer, MultiSourceCompoundRichLocation, MutationFunction.NoMutation, NameTokenization, NCBISequenceDB, NewAssembledSymbolList, NewSimpleAssembly, OffsetRulerRenderer, Ontology.Impl, OntologyTerm.Impl, OrderCrossover, OverlayAnnotation, OverlayRendererWrapper, PackedSymbolList, PaddingRenderer, PairDistribution, PairwiseDiagonalRenderer, PairwiseFilteringRenderer, PairwiseOverlayRenderer, PairwiseSequencePanel, PeptideDigestRenderer, PhredSequence, ProfileEmissionState, ProfileHMM, ProjectedFeature, ProjectedFeatureHolder, RectangularBeadRenderer, ReferenceAnnotation, ReferenceServer, RelabeledAlignment, RemoteTerm.Impl, RevCompSequence, RoundRectangularBeadRenderer, SecondaryStructureFeatureRenderer, SequenceDBSearchHit, SequenceDBSearchResult, SequenceDBSearchSubHit, SequenceDBWrapper, SequencePanel, SequencePoster, SequenceRendererWrapper, SimilarityPairFeature.EmptyPairwiseAlignment, SimpleAlignment, SimpleAlphabet, SimpleAnnotation, SimpleAssembly, SimpleAtomicSymbol, SimpleBioEntry, SimpleBioEntryRelationship, SimpleCodonPref, SimpleComment, SimpleComparableOntology, SimpleComparableTerm, SimpleComparableTriple, SimpleCrossOverFunction, SimpleCrossRef, SimpleDistribution, SimpleDocRef, SimpleDocRefAuthor, SimpleDotState, SimpleEmissionState, SimpleFeature, SimpleFeatureHolder, SimpleFramedFeature, SimpleGappedSequence, SimpleGappedSymbolList, SimpleGeneticAlgorithm, SimpleHomology, SimpleHomologyFeature, SimpleLabelRenderer, SimpleMarkovModel, SimpleModelInState, SimpleMutationFunction, SimpleNamespace, SimpleNCBITaxon, SimpleNote, SimpleOrganism, SimpleOrthologueSet, SimpleOrthoPairSet, SimplePopulation, SimpleRankedCrossRef, SimpleRankedDocRef, SimpleRemoteFeature, SimpleRestrictionSite, SimpleRichAnnotation, SimpleRichFeature, SimpleRichFeatureRelationship, SimpleRichLocation, SimpleRichSequence, SimpleSeqSimilaritySearchHit, SimpleSeqSimilaritySearchResult, SimpleSeqSimilaritySearchSubHit, SimpleSequence, SimpleSimilarityPairFeature, SimpleStatePath, SimpleStrandedFeature, SimpleSymbolList, SimpleTaxon, SingletonAlphabet, SixFrameRenderer, SixFrameZiggyRenderer, SmallAnnotation, SoftMaskedAlphabet, SoftMaskedAlphabet.CaseSensitiveTokenization, StackedFeatureRenderer, SubIntegerTokenization, SubSequence, SubSequenceDB, SwapMutationFunction, Term.Impl, ThinRichSequence, TickFeatureRenderer, TranslatedDistribution, TranslatedSequencePanel, Triple.Impl, Unchangeable, UniformDistribution, UntrainableDistribution, Variable.Impl, ViewingSequenceDB, ViewSequence, WeakTaxon, WebSequenceDB, WMAsMM, WordTokenization, ZiggyFeatureRenderer

    public interface Changeable

This is a flag interface that defines the common add/remove listener methods for classes and interfaces that wish to indicate that they are sources of ChangeEvents.

Author:
  Matthew Pocock

Method Summary
`void` `addChangeListener(ChangeListener cl)` Deprecated. use addChangeListener(cl, ChangeType.UNKNOWN)
`void` `addChangeListener(ChangeListener cl, ChangeType ct)` Add a listener that will be informed of changes of a given type.
`boolean` `isUnchanging(ChangeType ct)` A particular ChangeType can never be raised by this Changeable.
`void` `removeChangeListener(ChangeListener cl)` Deprecated. use removeChangeListener(cl, ChangeType.UNKNOWN)
`void` `removeChangeListener(ChangeListener cl, ChangeType ct)` Remove a listener that was interested in a specific types of changes.

Method Detail

### addChangeListener

    void addChangeListener(ChangeListener cl)

  Deprecated. use addChangeListener(cl, ChangeType.UNKNOWN)

  Add a listener that will be informed of all changes.

  Parameters:
    `cl` - the ChangeListener to add

### addChangeListener

    void addChangeListener(ChangeListener cl,
                           ChangeType ct)

  Add a listener that will be informed of changes of a given type.

  Parameters:
    `cl` - the ChangeListener
    `ct` - the ChangeType it is to be informed of

### removeChangeListener

    void removeChangeListener(ChangeListener cl)

  Deprecated. use removeChangeListener(cl, ChangeType.UNKNOWN)

  Remove a listener that was interested in all types of changes.

  Parameters:
    `cl` - a ChangeListener to remove

### removeChangeListener

    void removeChangeListener(ChangeListener cl,
                              ChangeType ct)

  Remove a listener that was interested in a specific types of changes.

  Parameters:
    `cl` - a ChangeListener to remove
    `ct` - the ChangeType that it was interested in

### isUnchanging

    boolean isUnchanging(ChangeType ct)

  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.

  Parameters:
    `ct` - the ChangeType to check
  Returns:
    true if ChangeEvents of this type are guaranteed to never be fired