FileDocCategorySizeDatePackage
CMLeaf.javaAPI DocApache Xerces 3.0.13747Fri Sep 14 20:33:54 BST 2007org.apache.xerces.impl.dtd.models

CMLeaf

public class CMLeaf extends CMNode
Content model leaf node.
xerces.internal
version
$Id: CMLeaf.java 572057 2007-09-02 18:03:20Z mrglavas $

Fields Summary
private final org.apache.xerces.xni.QName
fElement
This is the element that this leaf represents.
private int
fPosition
Part of the algorithm to convert a regex directly to a DFA numbers each leaf sequentially. If its -1, that means its an epsilon node. Zero and greater are non-epsilon positions.
Constructors Summary
public CMLeaf(org.apache.xerces.xni.QName element, int position)
Constructs a content model leaf.


    //
    // Constructors
    //

          
          
        super(XMLContentSpec.CONTENTSPECNODE_LEAF);

        // Store the element index and position
        fElement.setValues(element);
        fPosition = position;
    
public CMLeaf(org.apache.xerces.xni.QName element)
Constructs a content model leaf.

        super(XMLContentSpec.CONTENTSPECNODE_LEAF);

        // Store the element index and position
        fElement.setValues(element);
    
Methods Summary
protected voidcalcFirstPos(CMStateSet toSet)

        // If we are an epsilon node, then the first pos is an empty set
        if (fPosition == -1)
            toSet.zeroBits();

        // Otherwise, its just the one bit of our position
        else
            toSet.setBit(fPosition);
    
protected voidcalcLastPos(CMStateSet toSet)

        // If we are an epsilon node, then the last pos is an empty set
        if (fPosition == -1)
            toSet.zeroBits();

        // Otherwise, its just the one bit of our position
        else
            toSet.setBit(fPosition);
    
final org.apache.xerces.xni.QNamegetElement()

        return fElement;
    
final intgetPosition()

        return fPosition;
    
public booleanisNullable()

        // Leaf nodes are never nullable unless its an epsilon node
        return (fPosition == -1);
    
final voidsetPosition(int newPosition)

        fPosition = newPosition;
    
public java.lang.StringtoString()

        StringBuffer strRet = new StringBuffer(fElement.toString());
        strRet.append(" (");
        strRet.append(fElement.uri);
        strRet.append(',");
        strRet.append(fElement.localpart);
        strRet.append(')");
        if (fPosition >= 0) {
            strRet.append(" (Pos:")
                  .append(Integer.toString(fPosition))
                  .append(')");
        }
        return strRet.toString();