20 import static ca.uqac.lif.cep.Connector.BOTTOM;
21 import static ca.uqac.lif.cep.Connector.INPUT;
22 import static ca.uqac.lif.cep.Connector.TOP;
23 import static ca.uqac.lif.cep.Connector.OUTPUT;
25 import ca.uqac.lif.cep.Connector;
26 import ca.uqac.lif.cep.Pushable;
27 import ca.uqac.lif.cep.functions.ApplyFunction;
28 import ca.uqac.lif.cep.functions.ApplyFunctionPartial;
29 import ca.uqac.lif.cep.functions.Constant;
30 import ca.uqac.lif.cep.functions.FunctionTree;
31 import ca.uqac.lif.cep.functions.StreamVariable;
32 import ca.uqac.lif.cep.io.Print;
33 import ca.uqac.lif.cep.ltl.Next;
34 import ca.uqac.lif.cep.ltl.Until;
35 import ca.uqac.lif.cep.tmf.Fork;
36 import ca.uqac.lif.cep.util.Booleans;
37 import ca.uqac.lif.cep.util.Equals;
49 public static void main(String[] args)
51 Fork fork =
new Fork(5);
52 ApplyFunctionPartial imp =
new ApplyFunctionPartial(
new FunctionTree(Booleans.implies,
53 new FunctionTree(Equals.instance, StreamVariable.X,
new Constant(
"a")),
56 Connector.connect(fork, 1, imp, TOP);
57 ApplyFunction f_nbc =
new ApplyFunction(
new FunctionTree(Booleans.not,
58 new FunctionTree(Booleans.and,
59 new FunctionTree(Equals.instance, StreamVariable.X,
new Constant(
"b")),
61 Connector.connect(fork, 2, f_nbc, TOP);
62 ApplyFunction f_c =
new ApplyFunction(
63 new FunctionTree(Equals.instance, StreamVariable.X,
new Constant(
"c")));
64 Connector.connect(fork, 3, f_c, INPUT);
65 Next next =
new Next();
66 Connector.connect(f_c, next);
67 Connector.connect(next, OUTPUT, f_nbc, BOTTOM);
68 Until until =
new Until();
69 Connector.connect(f_nbc, OUTPUT, until, TOP);
70 ApplyFunction f_d =
new ApplyFunction(
71 new FunctionTree(Equals.instance, StreamVariable.X,
new Constant(
"d")));
72 Connector.connect(fork, 4, f_d, INPUT);
73 Connector.connect(f_d, OUTPUT, until, BOTTOM);
74 Connector.connect(until, OUTPUT, imp, BOTTOM);
75 Print print_out =
new Print().setPrefix(
"Output: ").setSeparator(
"\n");
76 Connector.connect(imp, print_out);
77 Print print_in =
new Print().setPrefix(
"Pushing: ").setSeparator(
"\n");
78 Connector.connect(fork, 0, print_in, INPUT);
79 Pushable p = fork.getPushableInput();
Basic usage of LTL's Until processor.