## com.saxonica.schema.fsa
Class CountingState

    java.lang.Object
      com.saxonica.schema.fsa.CountingState

All Implemented Interfaces:
  State, Serializable

    public class CountingState

extends Object
implements State

A counting state is a dynamic object representing the combination of an AutomatonState and a counter value

See Also:
  Serialized Form

Constructor Summary
`CountingState(AutomatonState as, int startFrom)`

Method Summary
`boolean` `equals(Object obj)`
`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
`AutomatonState` `getUnderlyingState()`
`Edge[]` `getWildcardEdges()` Get an iterator over the wildcard transitions (edges) allowed from this state.
`int` `hashCode()`
`State` `incrementCounter()`
`boolean` `isFinalState()`
`CharSequence` `listAllowedElements()`
`void` `testMinimumReached()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CountingState

    public CountingState(AutomatonState as,
                         int startFrom)

Method Detail

### incrementCounter

    public State incrementCounter()
                           throws ValidationException

  Throws:
    `ValidationException`

### testMinimumReached

    public void testMinimumReached()
                            throws ValidationException

  Throws:
    `ValidationException`

### getTransition

    public Edge getTransition(int token,
                              UserComplexType type)

  Description copied from interface: `State`
  Find the edge representing the transition from this state to another state, that is triggered by a given input token

  Specified by:
    `getTransition` in interface `State`
  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

    public boolean isFinalState()

  Specified by:
    `isFinalState` in interface `State`

### getUnderlyingState

    public AutomatonState getUnderlyingState()

### listAllowedElements

    public CharSequence listAllowedElements()

  Specified by:
    `listAllowedElements` in interface `State`

### getWildcardEdges

    public Edge[] getWildcardEdges()

  Get an iterator over the wildcard transitions (edges) allowed from this state.

  Specified by:
    `getWildcardEdges` in interface `State`
  Returns:
    an Iterator over the edges that represent element wildcards. The objects returned by this Iterator are `Edge` objects.

### getEdges

    public Iterator<Edge> getEdges()

  Get an iterator over all the transitions (edges) allowed from this state

  Specified by:
    `getEdges` in interface `State`
  Returns:
    an Iterator over all the edges from this state. The objects returned by this Iterator are `Edge` objects.

### equals

    public boolean equals(Object obj)

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

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