Class StateMachineExtensions
- Namespace
- LfrlAnvil.Computable.Automata.Extensions
- Assembly
- LfrlAnvil.Computable.Automata.dll
Contains IStateMachine<TState, TInput, TResult> extension methods.
public static class StateMachineExtensions
- Inheritance
-
StateMachineExtensions
- Inherited Members
Methods
CanTransitionTo<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>, TState, TState)
Checks whether or not a transition between two states exists.
[Pure]
public static bool CanTransitionTo<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine, TState source, TState destination) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>State machine to check.
source
TStateSource state.
destination
TStateDestination state.
Returns
- bool
true when transition exists, otherwise false.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
CanTransition<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>, TState, TInput)
Checks whether or not a transition exists.
[Pure]
public static bool CanTransition<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine, TState source, TInput input) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>State machine to check.
source
TStateSource state.
input
TInputTransition identifier.
Returns
- bool
true when transition exists, otherwise false.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
FindAcceptStates<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>)
Creates a new IEnumerable<T> instance that contains all states of Accept type.
[Pure]
public static IEnumerable<IStateMachineNode<TState, TInput, TResult>> FindAcceptStates<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>State machine to check.
Returns
- IEnumerable<IStateMachineNode<TState, TInput, TResult>>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
FindDeadStates<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>)
Creates a new IEnumerable<T> instance that contains all states of Dead type.
[Pure]
public static IEnumerable<IStateMachineNode<TState, TInput, TResult>> FindDeadStates<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>State machine to check.
Returns
- IEnumerable<IStateMachineNode<TState, TInput, TResult>>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
FindDefaultStates<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>)
Creates a new IEnumerable<T> instance that contains all states of Default type.
[Pure]
public static IEnumerable<IStateMachineNode<TState, TInput, TResult>> FindDefaultStates<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>State machine to check.
Returns
- IEnumerable<IStateMachineNode<TState, TInput, TResult>>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
FindTransitionsTo<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>, TState, TState)
Creates a new IEnumerable<T> instance that contains all available transitions
from source
state to destination
state.
[Pure]
public static IEnumerable<KeyValuePair<TInput, IStateMachineTransition<TState, TInput, TResult>>> FindTransitionsTo<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine, TState source, TState destination) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>Source state machine.
source
TStateSource state.
destination
TStateDestination state.
Returns
- IEnumerable<KeyValuePair<TInput, IStateMachineTransition<TState, TInput, TResult>>>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
GetAlphabet<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>)
Creates a new IEnumerable<T> instance that contains all possible transition identifiers.
[Pure]
public static IEnumerable<TInput> GetAlphabet<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>Source state machine.
Returns
- IEnumerable<TInput>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
GetAvailableDestinations<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>, TState)
Creates a new IEnumerable<T> instance that contains all available destination states
for the given source
state.
[Pure]
public static IEnumerable<IStateMachineNode<TState, TInput, TResult>> GetAvailableDestinations<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine, TState source) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>Source state machine.
source
TStateSource state.
Returns
- IEnumerable<IStateMachineNode<TState, TInput, TResult>>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
GetTransition<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>, TState, TInput)
Returns an IStateMachineTransition<TState, TInput, TResult> instance for the provided state and transition identifier.
[Pure]
public static IStateMachineTransition<TState, TInput, TResult> GetTransition<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine, TState source, TInput input) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>Source state machine.
source
TStateSource state.
input
TInputTransition identifier.
Returns
- IStateMachineTransition<TState, TInput, TResult>
IStateMachineTransition<TState, TInput, TResult> instance associated with the provided state and transition identifier.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
Exceptions
- StateMachineStateException
When
source
does not exist.- StateMachineTransitionException
When transition does not exist in the source state.
GetTransitions<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>)
Creates a new IEnumerable<T> instance that contains all possible transitions.
[Pure]
public static IEnumerable<KeyValuePair<IStateMachineNode<TState, TInput, TResult>, KeyValuePair<TInput, IStateMachineTransition<TState, TInput, TResult>>>> GetTransitions<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>Source state machine.
Returns
- IEnumerable<KeyValuePair<IStateMachineNode<TState, TInput, TResult>, KeyValuePair<TInput, IStateMachineTransition<TState, TInput, TResult>>>>
New IEnumerable<T> instance.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.
TryGetTransition<TState, TInput, TResult>(IStateMachine<TState, TInput, TResult>, TState, TInput, out IStateMachineTransition<TState, TInput, TResult>)
Attempts to return an IStateMachineTransition<TState, TInput, TResult> instance for the provided state and transition identifier.
public static bool TryGetTransition<TState, TInput, TResult>(this IStateMachine<TState, TInput, TResult> machine, TState source, TInput input, out IStateMachineTransition<TState, TInput, TResult> result) where TState : notnull where TInput : notnull
Parameters
machine
IStateMachine<TState, TInput, TResult>Source state machine.
source
TStateSource state.
input
TInputTransition identifier.
result
IStateMachineTransition<TState, TInput, TResult>out parameter that returns an IStateMachineTransition<TState, TInput, TResult> instance associated with the provided state and transition identifier.
Returns
- bool
true when transition exists, otherwise false.
Type Parameters
TState
State type.
TInput
Input type.
TResult
Result type.