Class StdInOracle<I>

java.lang.Object
de.learnlib.oracle.membership.StdInOracle<I>
Type Parameters:
I - input symbol type
All Implemented Interfaces:
BatchProcessor<Query<I,Boolean>>, MembershipOracle<I,Boolean>, QueryAnswerer<I,Boolean>, SingleQueryOracle<I,Boolean>

public class StdInOracle<I> extends Object implements SingleQueryOracle<I,Boolean>
An oracle that delegates its queries to an external program via the command-line interface. Acceptance of the queries is determined based on the program's return code where 0 indicates success and any other value indicates failure.

Queries are passed to the program's stdin stream via the queries' Object.toString() method (separated by AutomataLibProperty.WORD_SYMBOL_SEPARATOR). Depending on whether a reset symbol has been specified, this oracle assumes either a stateless (reset == null) or stateful (reset != null) communication.

In a stateless communication, all symbols of a query are passed to the program at once and invocations should be treated independently of each other. In a stateful communication, the program is executed multiple times with a single query symbol each, preceded by a single invocation with only the reset symbol. The exit code of the last invocation determines the query response.