com.sun.tools.xjc.reader.gbind
Class Element

java.lang.Object
  extended by com.sun.tools.xjc.reader.gbind.Expression
      extended by com.sun.tools.xjc.reader.gbind.Element
Direct Known Subclasses:
SinkNode, SourceNode

public abstract class Element
extends Expression

Expression that represents an alphabet of a regular language.

Since this package is about a regular expression over element declarations, this represents an XML element declaration (hence the name.) Element needs to be interned, meaning one Element per one tag name.

Implements ElementSet to represent a self.


Field Summary
static com.sun.tools.xjc.reader.gbind.ElementSet EMPTY_SET
           
 
Fields inherited from class com.sun.tools.xjc.reader.gbind.Expression
EPSILON
 
Constructor Summary
protected Element()
           
 
Method Summary
 void addNext(Element element)
          For each element in this set, adds an edge to the given element.
 void buildStronglyConnectedComponents(java.util.List<ConnectedComponent> ccs)
          Builds a set of strongly connected components and puts them all into the given set.
 boolean contains(com.sun.tools.xjc.reader.gbind.ElementSet rhs)
          Doesn't have to be strict (it's OK for this method to return false when it's actually true) since this is used just for optimization.
 boolean hasSelfLoop()
           
 java.util.Iterator<Element> iterator()
          Deprecated. if you statically call this method, there's something wrong.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_SET

public static final com.sun.tools.xjc.reader.gbind.ElementSet EMPTY_SET
Constructor Detail

Element

protected Element()
Method Detail

addNext

public void addNext(Element element)
For each element in this set, adds an edge to the given element.


contains

public boolean contains(com.sun.tools.xjc.reader.gbind.ElementSet rhs)
Doesn't have to be strict (it's OK for this method to return false when it's actually true) since this is used just for optimization. (Erring on the other side is NG)


iterator

public java.util.Iterator<Element> iterator()
Deprecated. if you statically call this method, there's something wrong.

Just to satisfy the ElementSet contract.


buildStronglyConnectedComponents

public void buildStronglyConnectedComponents(java.util.List<ConnectedComponent> ccs)
Builds a set of strongly connected components and puts them all into the given set.


hasSelfLoop

public boolean hasSelfLoop()