1 package org.kuali.mobility.news.util;
2
3 import org.apache.commons.collections.Predicate;
4 import org.kuali.mobility.news.entity.NewsSource;
5
6 public class NewsSourcePredicate implements Predicate {
7
8 private Long parentId;
9 private Boolean active;
10
11 public NewsSourcePredicate( final Long parentId, final Boolean active )
12 {
13 this.setParentId(parentId);
14 this.setActive(active);
15 }
16
17 @Override
18 public boolean evaluate(Object obj) {
19 boolean parentMatch = false;
20 boolean activeMatch = false;
21
22 if( null != obj
23 && obj instanceof NewsSource ) {
24 if( getParentId() == null ) {
25 parentMatch = true;
26 } else if( ((NewsSource)obj).getParentId() == null ) {
27 if( getParentId().intValue() == 0 ) {
28 parentMatch = true;
29 } else {
30 parentMatch = false;
31 }
32 } else if( getParentId().compareTo( ((NewsSource)obj).getParentId() ) == 0 ) {
33 parentMatch = true;
34 }
35 if( isActive() == null ) {
36 activeMatch = true;
37 } else if( isActive().booleanValue() == ((NewsSource)obj).isActive() ) {
38 activeMatch = true;
39 }
40 }
41 return parentMatch && activeMatch;
42 }
43
44 public Long getParentId() {
45 return parentId;
46 }
47
48 public void setParentId(Long parentId) {
49 this.parentId = parentId;
50 }
51
52 public Boolean isActive() {
53 return active;
54 }
55
56 public void setActive(Boolean active) {
57 this.active = active;
58 }
59
60 }