1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.deri.wsmo4j.logicalexpression.util;
17
18
19 import java.util.*;
20
21 import org.omwg.logicalexpression.*;
22
23
24
25
26
27
28 public class VisitorContainsCheck
29 implements Visitor {
30
31 private Class[] operators;
32
33 private boolean containsOperator;
34
35
36
37
38
39 protected VisitorContainsCheck(Class[] operators) {
40 containsOperator = false;
41 this.operators = operators;
42 }
43
44
45
46
47
48
49 private boolean contained(Class operator) {
50 for (int i = 0; i < operators.length; i++) {
51 List classes = Arrays.asList(operator.getInterfaces());
52 if (classes.contains(operators[i])) {
53 return true;
54 }
55 }
56 return false;
57 }
58
59
60
61
62
63 public void visitAtom(Atom expr) {
64
65 }
66
67
68
69
70
71 public void visitNegationAsFailure(NegationAsFailure expr) {
72 if (contained(expr.getClass())) {
73 containsOperator = true;
74 return;
75 }
76 expr.getOperand().accept(this);
77 }
78
79
80
81
82
83 public void visitNegation(Negation expr) {
84 if (contained(expr.getClass())) {
85 containsOperator = true;
86 return;
87 }
88 expr.getOperand().accept(this);
89 }
90
91
92
93
94
95 public void visitConstraint(Constraint expr) {
96 if (contained(expr.getClass())) {
97 containsOperator = true;
98 return;
99 }
100 expr.getOperand().accept(this);
101 }
102
103
104
105
106
107 public void visitConjunction(Conjunction expr) {
108 if (contained(expr.getClass())) {
109 containsOperator = true;
110 return;
111 }
112 expr.getLeftOperand().accept(this);
113 expr.getRightOperand().accept(this);
114 }
115
116
117
118
119
120 public void visitEquivalence(Equivalence expr) {
121 if (contained(expr.getClass())) {
122 containsOperator = true;
123 return;
124 }
125 expr.getLeftOperand().accept(this);
126 expr.getRightOperand().accept(this);
127 }
128
129
130
131
132
133 public void visitInverseImplication(InverseImplication expr) {
134 if (contained(expr.getClass())) {
135 containsOperator = true;
136 return;
137 }
138 expr.getLeftOperand().accept(this);
139 expr.getRightOperand().accept(this);
140 }
141
142
143
144
145
146 public void visitImplication(Implication expr) {
147 if (contained(expr.getClass())) {
148 containsOperator = true;
149 return;
150 }
151 expr.getLeftOperand().accept(this);
152 expr.getRightOperand().accept(this);
153 }
154
155
156
157
158
159 public void visitLogicProgrammingRule(LogicProgrammingRule expr) {
160 if (contained(expr.getClass())) {
161 containsOperator = true;
162 return;
163 }
164 expr.getLeftOperand().accept(this);
165 expr.getRightOperand().accept(this);
166 }
167
168
169
170
171
172 public void visitDisjunction(Disjunction expr) {
173 if (contained(expr.getClass())) {
174 containsOperator = true;
175 return;
176 }
177 expr.getLeftOperand().accept(this);
178 expr.getRightOperand().accept(this);
179 }
180
181
182
183
184
185
186 public void visitUniversalQuantification(UniversalQuantification expr) {
187 if (contained(expr.getClass())) {
188 containsOperator = true;
189 return;
190 }
191 expr.getOperand().accept(this);
192 }
193
194
195
196
197
198
199 public void visitExistentialQuantification(ExistentialQuantification expr) {
200 if (contained(expr.getClass())) {
201 containsOperator = true;
202 return;
203 }
204 expr.getOperand().accept(this);
205 }
206
207
208
209
210
211
212
213 protected boolean isContained() {
214 return containsOperator;
215 }
216
217 public void visitAttributeContraintMolecule(AttributeConstraintMolecule expr) {
218
219 }
220
221 public void visitAttributeInferenceMolecule(AttributeInferenceMolecule expr) {
222
223 }
224
225 public void visitAttributeValueMolecule(AttributeValueMolecule expr) {
226
227 }
228
229 public void visitCompoundMolecule(CompoundMolecule expr) {
230
231 }
232
233 public void visitMemberShipMolecule(MembershipMolecule expr) {
234
235 }
236
237 public void visitSubConceptMolecule(SubConceptMolecule expr) {
238
239 }
240 }