laser.alphabet
Interface AlphabetInterface<L extends LabelInterface>

Type Parameters:
L - The type of Label that this Alphabet contains.
All Superinterfaces:
AlphabetFactoryInterface<L>, Annotatable, ArtifactInterface, java.lang.Cloneable, java.util.Collection<L>, java.lang.Iterable<L>, Persistent, java.io.Serializable, java.util.Set<L>, Visualizable
All Known Implementing Classes:
Alphabet, IndexedAlphabet

public interface AlphabetInterface<L extends LabelInterface>
extends AlphabetFactoryInterface<L>, ArtifactInterface, java.lang.Cloneable, java.util.Set<L>, Annotatable

This interface is implemented by all types of Alphabets. Alphabets are sets of Labels all of the same type. Labels are used to annotate graph-like objects such as CFGs, TFGs (as node labels), and FSAs (as transition labels), for example. The Alphabet of such a graph- like object is the set of all such Labels annotating it.

Author:
Nathan A. Jokel (laser-software@cs.umass.edu)
See Also:
Set, LabelInterface

Field Summary
 
Fields inherited from interface laser.util.Persistent
PER_EXTENSION, READ_PERSISTENT_METHOD_NAME
 
Method Summary
 AlphabetInterface<L> clone()
          Returns a copy of this Alphabet.
 AlphabetChangeManager<L> getChangeManager()
          Returns the AlphabetChangeManager of this alphabet.
 java.lang.String getName()
          Returns the name of this Alphabet.
 void setName(java.lang.String name)
          Sets the name of the Alphabet to the specified String.
 java.util.Iterator<L> sortedIterator()
          Returns an Iterator over the Labels in this Alphabet.
 
Methods inherited from interface laser.alphabet.AlphabetFactoryInterface
createAlphabetInterface, createLabelInterface, getCreateAlphabetArgs, isValidLabel, unmodifiableAlphabet
 
Methods inherited from interface laser.util.Persistent
writePersistent, writePersistent
 
Methods inherited from interface laser.util.Visualizable
getVisExtension, visualize, visualize
 
Methods inherited from interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 
Methods inherited from interface laser.util.Annotatable
addAnnotation, addAnnotations, copyAnnotations, getAnnotationClasses, getAnnotationClasses, getAnnotationFilters, getAnnotations, getAnnotations, removeAnnotation, removeAnnotations, removeAnnotations, removeAnnotations, setAnnotationFilters
 

Method Detail

clone

AlphabetInterface<L> clone()
Returns a copy of this Alphabet.

Returns:
The copy.
See Also:
Object.clone()

getName

java.lang.String getName()
Returns the name of this Alphabet.

Returns:
the name of this Alphabet.

setName

void setName(java.lang.String name)
Sets the name of the Alphabet to the specified String.

Parameters:
name - the String.

sortedIterator

java.util.Iterator<L> sortedIterator()
Returns an Iterator over the Labels in this Alphabet. The Labels are returned in ascending order according to their natural ordering (using their compareTo() method).

Returns:
an Iterator over the Labels in this Alphabet.

getChangeManager

AlphabetChangeManager<L> getChangeManager()
Returns the AlphabetChangeManager of this alphabet.

Returns:
The AlphabetChangeManager of this alphabet