Table of Contents

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 TState

Source state.

destination TState

Destination 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 TState

Source state.

input TInput

Transition 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 TState

Source state.

destination TState

Destination 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 TState

Source 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 TState

Source state.

input TInput

Transition 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 TState

Source state.

input TInput

Transition 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.