-
Notifications
You must be signed in to change notification settings - Fork 0
Setup Annotations
These are the annotations which can be used to set details about the learning setup, such as which methods should be called to start, initialize and shut down the SUL and which methods should be called to ensure equivalence between queries.
All annotations except Start have an order()
method to set in which order the annotated methods should be executed. If this value is left empty, it will be executed last. Below all annotations are quickly explained together with a few small examples. More details about these annotations can be found in their respective JavaDoc.
The Start annotation is used to indicate which method should be called to start the SUL and which kind of automaton should be learned.
@Start(automaton = "MealyMachine")
@Override
public static void main(String[] args) throws Exception {
// code
}
The Initialize annotation is used to indicate which method should be called to initialize the SUL. This method will be called after the method annotated with Start. In the example below, the order in which the methods will be called is a(), c(), b().
@Initialize(order = 1)
public void a() {
// code
}
@Initialize()
public void b() {
// code
}
@Initialize(order = 2)
public void c() {
// code
}
The Shutdown annotation is used to indicate which method should be called to shut down the SUL.
The PreQuery annotation type is used to indicate which method should be called before each Query on the SUL as to ensure query equivalence.
The PostQuery is used to indicate which method should be called after each Query on the SUL as to ensure query equivalence.
The PreInputInvocation annotation type is used to indicate which method should be called before any input method of any input symbol is invocated on the SUL as to ensure query equivalence.
The PostInputInvocation annotation type is used to indicate which method should be called after any input method of any input symbol is invocated on the SUL as to ensure query equivalence.
The PreOutputInvocationannotation type is used to indicate which method should be called before any output method of any input symbol is invocated on the SUL as to ensure query equivalence.
The PostOutputInvocationannotation type is used to indicate which method should be called after any output method of any input symbol is invocated on the SUL as to ensure query equivalence.