- 
- Type Parameters:
 I- input symbolsO- output symbols
- All Known Subinterfaces:
 ObservableSUL<S,I,O>,StateLocalInputSUL<I,O>,StatisticSUL<I,O>
- All Known Implementing Classes:
 AbstractContextExecutableInputSUL,ContextExecutableInputSUL,CounterObservableSUL,CounterStateLocalInputSUL,CounterSUL,ExecutableInputSUL,MappedSUL,MealySimulatorSUL,ObservableMealySimulatorSUL,SimplePOJOTestDriver,StateLocalInputMealySimulatorSUL,StateLocalInputSULCache,SULCache,ThreadSafeStateLocalInputSULCache,ThreadSafeSULCache
public interface SUL<I,O>Interface for a system under learning (SUL) that can make single steps. 
- 
- 
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default booleancanFork()Returns whether this SUL is capable offorking.default SUL<I,O>fork()Forks this SUL, if possible.voidpost()shut down SUL.voidpre()setup SUL.Ostep(I in)make one step on the SUL. 
 - 
 
- 
- 
Method Detail
- 
pre
void pre()
setup SUL. 
- 
post
void post()
shut down SUL. 
- 
step
O step(I in)
make one step on the SUL.- Parameters:
 in- input to the SUL- Returns:
 - output of SUL
 - Throws:
 SULException- if the input symbol cannot be executed on the SUL
 
- 
canFork
default boolean canFork()
Returns whether this SUL is capable offorking.- Returns:
 trueif this SUL can be forked,falseotherwise- See Also:
 fork()
 
- 
fork
default SUL<I,O> fork()
Forks this SUL, if possible. The fork of a SUL is a copy which behaves exactly the same as this SUL. This method should always return a reseted SUL, regardless of whether this call is made between a call topre()andpost().If
canFork()returnstrue, this method must return a non-nullobject, which should behave exactly like this SUL (in particular, it must be forkable as well). Otherwise, aUnsupportedOperationExceptionmust be thrown.Implementation note: if resetting a SUL changes the internal state of this object in a non-trivial way (e.g., incrementing a counter to ensure independent sessions), care must be taken that forks of this SUL manipulate the same internal state.
- Returns:
 - a fork of this SUL.
 - Throws:
 UnsupportedOperationException- if this SUL can't be forked.
 
 - 
 
 -