com.saxonica.schema.fsa
Interface State

All Superinterfaces:
Serializable
All Known Implementing Classes:
AutomatonState, CountingState, DeterminizedState, NonDeterminizedState, SuffixState

public interface State
extends Serializable

A State is a dynamic state of the finite state machine. It may either be a static (non-counting) AutomatonState, or a dynamically-created CountingState, which represents the combination of an AutomatonState and a counter value


Method Summary
 Iterator<Edge> getEdges()
          Get an iterator over all the transitions (edges) allowed from this state
 Edge getTransition(int token, UserComplexType type)
          Find the edge representing the transition from this state to another state, that is triggered by a given input token
 Edge[] getWildcardEdges()
          Get an array of the wildcard transitions (edges) allowed from this state.
 boolean isFinalState()
           
 CharSequence listAllowedElements()
           
 

Method Detail

getTransition

Edge getTransition(int token,
                   UserComplexType type)
Find the edge representing the transition from this state to another state, that is triggered by a given input token

Parameters:
token - the input token, specifically the fingerprint of an element name
type - the complex type whose content model we are validating against
Returns:
the Edge representing the selected transition of the finite state machine, or null if this token is not accepted when in this State (which implies a validation error).

isFinalState

boolean isFinalState()

listAllowedElements

CharSequence listAllowedElements()

getWildcardEdges

Edge[] getWildcardEdges()
Get an array of the wildcard transitions (edges) allowed from this state.

Returns:
an array containing all the edges that represent element wildcards.

getEdges

Iterator<Edge> getEdges()
Get an iterator over all the transitions (edges) allowed from this state

Returns:
an Iterator over all the edges from this state. The objects returned by this Iterator are Edge objects.


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.