Code Examples
A repository of 155 code examples for BeepBeep
QuantifiedBooleanVariable.java
1 /*
2  BeepBeep, an event stream processor
3  Copyright (C) 2008-2022 Sylvain HallĂ©
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published
7  by the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 package qbf;
19 
20 import ca.uqac.lif.cep.Connector;
21 import ca.uqac.lif.cep.GroupProcessor;
22 import ca.uqac.lif.cep.functions.BinaryFunction;
23 import ca.uqac.lif.cep.functions.Cumulate;
24 import ca.uqac.lif.cep.functions.CumulativeFunction;
25 import ca.uqac.lif.cep.tmf.CountDecimate;
26 import ca.uqac.lif.cep.tmf.Window;
27 import ca.uqac.lif.cep.util.Booleans;
28 
29 public abstract class QuantifiedBooleanVariable extends GroupProcessor
30 {
31  public QuantifiedBooleanVariable(BinaryFunction<Boolean,Boolean,Boolean> operator)
32  {
33  super(1, 1);
34  Window w = new Window(new Cumulate(new CumulativeFunction<Boolean>(operator)), 2);
35  CountDecimate d = new CountDecimate(2);
36  Connector.connect(w, d);
37  addProcessors(w, d);
38  associateInput(0, w, 0);
39  associateOutput(0, d, 0);
40  }
41 
42  public static class ExistentialVariable extends QuantifiedBooleanVariable
43  {
44  public ExistentialVariable()
45  {
46  super(Booleans.or);
47  }
48  }
49 
50  public static class UniversalVariable extends QuantifiedBooleanVariable
51  {
52  public UniversalVariable()
53  {
54  super(Booleans.and);
55  }
56  }
57 }