I
- input symbol classO
- output symbol classpublic class IncrementalMealyDAGBuilder<I,O> extends AbstractIncrementalMealyBuilder<I,O> implements InputAlphabetHolder<I>
Modifier and Type | Class and Description |
---|---|
class |
IncrementalMealyDAGBuilder.AutomatonView |
class |
IncrementalMealyDAGBuilder.GraphView |
AbstractIncrementalMealyBuilder.AbstractGraphView<I,O,N,E>
Constructor and Description |
---|
IncrementalMealyDAGBuilder(Alphabet<I> inputAlphabet)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addAlphabetSymbol(I symbol)
Notifies the data structure that a new symbol should be added to the alphabet.
|
IncrementalMealyDAGBuilder.GraphView |
asGraph()
Retrieves a graph view of the current state of the construction.
|
IncrementalMealyDAGBuilder.AutomatonView |
asTransitionSystem()
Retrieves a transition system view of the current state of the construction.
|
Word<I> |
findSeparatingWord(MealyMachine<?,I,?,O> target,
Collection<? extends I> inputs,
boolean omitUndefined)
Checks the current state of the construction against a given target model, and returns a word exposing a
difference if there is one.
|
Alphabet<I> |
getInputAlphabet() |
boolean |
hasDefinitiveInformation(Word<? extends I> word)
Checks whether this class has definitive information about a given word.
|
void |
insert(Word<? extends I> word,
Word<? extends O> outputWord)
Incorporates a pair of input/output words into the stored information.
|
boolean |
isComplete(Word<? extends I> word)
Deprecated.
since 2014-01-22. Use
hasDefinitiveInformation(Word) |
boolean |
lookup(Word<? extends I> word,
List<? super O> output)
Retrieves the output word for the given input word.
|
lookup
public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException
SupportsGrowingAlphabet
GrowingAlphabet
) to handle
potentially shared state across multiple instances. If the needed requirements are not met, a GrowingAlphabetNotSupportedException
can be thrown.addAlphabetSymbol
in interface SupportsGrowingAlphabet<I>
symbol
- the symbol to add to the alphabet.GrowingAlphabetNotSupportedException
- if the data structure was not properly initialized (e.g. with a GrowingAlphabet
).@Deprecated public boolean isComplete(Word<? extends I> word)
hasDefinitiveInformation(Word)
word
- the input wordpublic boolean hasDefinitiveInformation(Word<? extends I> word)
IncrementalConstruction
hasDefinitiveInformation
in interface IncrementalConstruction<MealyMachine<?,I,?,O>,I>
hasDefinitiveInformation
in class AbstractIncrementalMealyBuilder<I,O>
word
- the wordtrue
if this class has definitive information about the word, false
otherwise.public boolean lookup(Word<? extends I> word, List<? super O> output)
IncrementalMealyBuilder
lookup
in interface IncrementalMealyBuilder<I,O>
word
- the input wordoutput
- a consumer for constructing the output wordtrue
if the information contained was complete (in this case, word.length() ==
output.size()
will hold), false
otherwise.public void insert(Word<? extends I> word, Word<? extends O> outputWord)
IncrementalMealyBuilder
insert
in interface IncrementalMealyBuilder<I,O>
word
- the input wordoutputWord
- the corresponding output wordpublic IncrementalMealyDAGBuilder.GraphView asGraph()
IncrementalConstruction
asGraph
in interface IncrementalConstruction<MealyMachine<?,I,?,O>,I>
asGraph
in interface IncrementalMealyBuilder<I,O>
public IncrementalMealyDAGBuilder.AutomatonView asTransitionSystem()
IncrementalConstruction
asTransitionSystem
in interface IncrementalConstruction<MealyMachine<?,I,?,O>,I>
asTransitionSystem
in interface IncrementalMealyBuilder<I,O>
public Word<I> findSeparatingWord(MealyMachine<?,I,?,O> target, Collection<? extends I> inputs, boolean omitUndefined)
IncrementalConstruction
findSeparatingWord
in interface IncrementalConstruction<MealyMachine<?,I,?,O>,I>
target
- the target automaton modelinputs
- the set of input symbols to consideromitUndefined
- if this is set to true
, then undefined transitions in the target
model will be
interpreted as "unspecified/don't know" and omitted in the equivalence test. Otherwise, they will be
interpreted in the usual manner (e.g., non-accepting sink in case of DFAs).null
if no difference could be found.@Nonnull public Alphabet<I> getInputAlphabet()
getInputAlphabet
in interface InputAlphabetHolder<I>
Copyright © 2019. All rights reserved.