public abstract class FastMutableNondet<S extends FastNondetState<S,T>,I,T,SP,TP> extends AbstractShrinkableAutomaton<S,I,T,SP,TP> implements FiniteAlphabetAutomaton<S,I,T>, UniversalGraph<S,TransitionEdge<I,T>,SP,TransitionEdge.Property<I,TP>>, StateIDs<S>, NodeIDs<S>
Modifier and Type | Field and Description |
---|---|
protected Alphabet<I> |
inputAlphabet |
Constructor and Description |
---|
FastMutableNondet(Alphabet<I> inputAlphabet) |
Modifier and Type | Method and Description |
---|---|
S |
addState(SP property)
Adds a state to the automaton.
|
void |
clear()
Removes all states and transitions.
|
<V> MutableMapping<S,V> |
createDynamicNodeMapping() |
<V> MutableMapping<S,V> |
createDynamicStateMapping()
Creates a
MutableMapping allowing to associate arbitrary data
with this transition system's states. |
protected abstract S |
createState(SP property) |
<V> MutableMapping<S,V> |
createStaticNodeMapping() |
<V> MutableMapping<S,V> |
createStaticStateMapping()
Creates a
MutableMapping allowing to associate arbitrary data
with this transition system's states. |
TransitionEdge.Property<I,TP> |
getEdgeProperty(TransitionEdge<I,T> edge)
Retrieves the property of a given edge.
|
Set<S> |
getInitialStates()
Retrieves the set of initial states of the transition system.
|
Alphabet<I> |
getInputAlphabet() |
S |
getNode(int id) |
int |
getNodeId(S node) |
SP |
getNodeProperty(S node)
Retrieves the property of a given node.
|
Collection<S> |
getNodes()
Retrieves an (unmodifiable) collection of the nodes in this graph.
|
Collection<TransitionEdge<I,T>> |
getOutgoingEdges(S node)
Retrieves the outgoing edges of a given node.
|
S |
getState(int id) |
int |
getStateId(S state) |
Collection<S> |
getStates()
Retrieves all states of the transition system.
|
S |
getTarget(TransitionEdge<I,T> edge)
Retrieves, for a given edge, its target node.
|
Collection<T> |
getTransitions(S state,
I input)
Retrieves the transitions that can be triggered by the given
input symbol.
|
NodeIDs<S> |
nodeIDs() |
void |
removeAllTransitions(S state) |
void |
removeState(S state,
S replacement)
Removes a state from the automaton.
|
void |
setInitial(S state,
boolean initial) |
void |
setTransitions(S state,
I input,
Collection<? extends T> transitions) |
StateIDs<S> |
stateIDs() |
removeState, removeState, unlinkState
addInitialState, addInitialState, addInitialState, addInitialState, addState, addState, addTransition, addTransition, addTransition, addTransition, addTransitions, addTransitions, removeAllTransitions, removeAllTransitions, removeTransition, removeTransition
iterator, iterator, size, size, stateIDs
createDynamicStateMapping, createStaticStateMapping, getStates, getStates, getSuccessors, getSuccessors, getSuccessors, getSuccessors, getSuccessors, getSuccessors, powersetView, powersetView
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getSuccessor, powersetView
size
getStates, getSuccessors, getSuccessors, getSuccessors
forEach, iterator, spliterator
addInitialState, addInitialState, addState, addTransition, addTransition, addTransitions, copyTransition, createTransition, removeAllTransitions, removeTransition, setStateProperty, setTransitionProperty
getStateProperty, getTransitionProperty
protected Alphabet<I> inputAlphabet
public FastMutableNondet(Alphabet<I> inputAlphabet)
public Collection<S> getStates()
SimpleAutomaton
getStates
in interface SimpleAutomaton<S extends FastNondetState<S,T>,I>
public int getStateId(S state)
getStateId
in interface StateIDs<S extends FastNondetState<S,T>>
public Set<S> getInitialStates()
SimpleTS
getInitialStates
in interface SimpleTS<S extends FastNondetState<S,T>,I>
public Collection<T> getTransitions(S state, I input)
TransitionSystem
getTransitions
in interface TransitionSystem<S extends FastNondetState<S,T>,I,T>
state
- the source state.input
- the input symbol.null
if no transitions
are triggered by this input symbol.public void clear()
MutableAutomaton
clear
in interface MutableAutomaton<S extends FastNondetState<S,T>,I,T,SP,TP>
public S addState(SP property)
MutableAutomaton
addState
in interface MutableAutomaton<S extends FastNondetState<S,T>,I,T,SP,TP>
public void setInitial(S state, boolean initial)
setInitial
in interface MutableAutomaton<S extends FastNondetState<S,T>,I,T,SP,TP>
public void removeState(S state, S replacement)
ShrinkableAutomaton
null
replacement is given, then
this method behaves like the above ShrinkableAutomaton.removeState(Object)
.removeState
in interface ShrinkableAutomaton<S extends FastNondetState<S,T>,I,T,SP,TP>
state
- the state to removereplacement
- the replacement state, or null
public void removeAllTransitions(S state)
removeAllTransitions
in interface MutableAutomaton<S extends FastNondetState<S,T>,I,T,SP,TP>
public void setTransitions(S state, I input, Collection<? extends T> transitions)
setTransitions
in interface MutableAutomaton<S extends FastNondetState<S,T>,I,T,SP,TP>
public Alphabet<I> getInputAlphabet()
getInputAlphabet
in interface InputAlphabetHolder<I>
public StateIDs<S> stateIDs()
stateIDs
in interface SimpleAutomaton<S extends FastNondetState<S,T>,I>
stateIDs
in class AbstractAutomaton<S extends FastNondetState<S,T>,I,T>
public <V> MutableMapping<S,V> createStaticStateMapping()
SimpleTS
MutableMapping
allowing to associate arbitrary data
with this transition system's states. The returned mapping is however
only guaranteed to work correctly if the transition system is not
modified.createStaticStateMapping
in interface SimpleTS<S extends FastNondetState<S,T>,I>
createStaticStateMapping
in class AbstractTS<S extends FastNondetState<S,T>,I,T>
public <V> MutableMapping<S,V> createDynamicStateMapping()
SimpleTS
MutableMapping
allowing to associate arbitrary data
with this transition system's states. The returned mapping maintains
the association even when the transition system is modified.createDynamicStateMapping
in interface SimpleTS<S extends FastNondetState<S,T>,I>
createDynamicStateMapping
in class AbstractTS<S extends FastNondetState<S,T>,I,T>
public <V> MutableMapping<S,V> createStaticNodeMapping()
createStaticNodeMapping
in interface IndefiniteGraph<S extends FastNondetState<S,T>,TransitionEdge<I,T>>
public <V> MutableMapping<S,V> createDynamicNodeMapping()
createDynamicNodeMapping
in interface IndefiniteGraph<S extends FastNondetState<S,T>,TransitionEdge<I,T>>
public Collection<S> getNodes()
Graph
getNodes
in interface Graph<S extends FastNondetState<S,T>,TransitionEdge<I,T>>
public Collection<TransitionEdge<I,T>> getOutgoingEdges(S node)
IndefiniteGraph
getOutgoingEdges
in interface IndefiniteGraph<S extends FastNondetState<S,T>,TransitionEdge<I,T>>
node
- the node.Collection
of all outgoing edges, or null
if
the node has no outgoing edges.public S getTarget(TransitionEdge<I,T> edge)
IndefiniteGraph
getTarget
in interface IndefiniteGraph<S extends FastNondetState<S,T>,TransitionEdge<I,T>>
edge
- the edge.public NodeIDs<S> nodeIDs()
nodeIDs
in interface Graph<S extends FastNondetState<S,T>,TransitionEdge<I,T>>
public SP getNodeProperty(S node)
UniversalIndefiniteGraph
getNodeProperty
in interface UniversalIndefiniteGraph<S extends FastNondetState<S,T>,TransitionEdge<I,T>,SP,TransitionEdge.Property<I,TP>>
node
- the nodepublic TransitionEdge.Property<I,TP> getEdgeProperty(TransitionEdge<I,T> edge)
UniversalIndefiniteGraph
getEdgeProperty
in interface UniversalIndefiniteGraph<S extends FastNondetState<S,T>,TransitionEdge<I,T>,SP,TransitionEdge.Property<I,TP>>
edge
- the edgeprotected abstract S createState(SP property)
Copyright © 2015. All Rights Reserved.