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.
|
lookuppublic void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException
SupportsGrowingAlphabetGrowingAlphabet) 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)
IncrementalConstructionhasDefinitiveInformation 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)
IncrementalMealyBuilderlookup 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)
IncrementalMealyBuilderinsert in interface IncrementalMealyBuilder<I,O>word - the input wordoutputWord - the corresponding output wordpublic IncrementalMealyDAGBuilder.GraphView asGraph()
IncrementalConstructionasGraph in interface IncrementalConstruction<MealyMachine<?,I,?,O>,I>asGraph in interface IncrementalMealyBuilder<I,O>public IncrementalMealyDAGBuilder.AutomatonView asTransitionSystem()
IncrementalConstructionasTransitionSystem 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)
IncrementalConstructionfindSeparatingWord 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.