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 NotExpression implements NonLeafExpression {
24
25 private static final long serialVersionUID = -777343514543759642L;
26
27 private List<Expression> children;
28
29 public NotExpression() {
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 false;
37 }
38 }
39 return true;
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 NotExpression) {
56 NotExpression other = (NotExpression)obj;
57 return children.equals(other.children);
58 }
59 return false;
60 }
61
62 @Override
63 public List<Expression> getChildren() {
64 return children;
65 }
66
67 }