1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.mobility.security.authz.expression;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import org.kuali.mobility.security.user.api.User;
22
23 public class OrExpression implements NonLeafExpression {
24
25 private static final long serialVersionUID = -375075043935425839L;
26
27 private List<Expression> children;
28
29 public OrExpression() {
30 children = new ArrayList<Expression>();
31 }
32
33 public boolean evaluate(User user) {
34 for (Expression child : children) {
35 if (child.evaluate(user)) {
36 return true;
37 }
38 }
39 return false;
40 }
41
42 public void addChild(Expression expression) {
43 children.add(expression);
44 }
45
46 private Object readResolve() {
47 if (children == null) {
48 children = new ArrayList<Expression>();
49 }
50 return this;
51 }
52
53 @Override
54 public boolean equals(Object obj) {
55 if (obj instanceof OrExpression) {
56 OrExpression other = (OrExpression)obj;
57 return children.equals(other.children);
58 }
59 return false;
60 }
61
62 public List<Expression> getChildren() {
63 return children;
64 }
65
66 }