package org.kohsuke.bali.automaton; import org.kohsuke.bali.datatype.DatatypeImpl; import org.relaxng.datatype.Datatype; import com.sun.msv.datatype.xsd.StringType; /** * Alphabet by text. * * A transition with a DataAlpahbet will not have its left state. * * @author Kohsuke Kawaguchi (kk@kohsuke.org) */ public class DataAlphabet extends TextAlphabet { /** Datatype object. */ public final Datatype datatype; public DataAlphabet( Datatype dt ) { this.datatype = dt; } public Object accept( AlphabetVisitor visitor ) { return visitor.data(this); } public boolean isPersistent() { return true; } public boolean isAlwaysValid() { return ((DatatypeImpl)datatype).realDatatype==StringType.theInstance; } }