1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.lib.search;
20
21 import java.util.Map;
22 import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
23
24
25
26
27
28 public class UserFiqlSearchConditionBuilder
29 extends AbstractFiqlSearchConditionBuilder<UserProperty, UserPartialCondition, UserCompleteCondition> {
30
31 private static final long serialVersionUID = 3485708634448845774L;
32
33 @Override
34 protected Builder newBuilderInstance() {
35 return new Builder(properties);
36 }
37
38 @Override
39 public UserProperty is(final String property) {
40 return newBuilderInstance().is(property);
41 }
42
43 public UserCompleteCondition inGroups(final String group, final String... moreGroups) {
44 return newBuilderInstance().
45 is(SpecialAttr.GROUPS.toString()).
46 inGroups(group, moreGroups);
47 }
48
49 public UserCompleteCondition notInGroups(final String group, final String... moreGroups) {
50 return newBuilderInstance().
51 is(SpecialAttr.GROUPS.toString()).
52 notInGroups(group, moreGroups);
53 }
54
55 public UserCompleteCondition inRelationships(final String anyObject, final String... moreAnyObjects) {
56 return newBuilderInstance().
57 is(SpecialAttr.RELATIONSHIPS.toString()).
58 inRelationships(anyObject, moreAnyObjects);
59 }
60
61 public UserCompleteCondition notInRelationships(final String anyObject, final String... moreAnyObjects) {
62 return newBuilderInstance().
63 is(SpecialAttr.RELATIONSHIPS.toString()).
64 notInRelationships(anyObject, moreAnyObjects);
65 }
66
67 public UserCompleteCondition inRelationshipTypes(final String type, final String... moreTypes) {
68 return newBuilderInstance().
69 is(SpecialAttr.RELATIONSHIP_TYPES.toString()).
70 inRelationshipTypes(type, moreTypes);
71 }
72
73 public UserCompleteCondition notInRelationshipTypes(final String type, final String... moreTypes) {
74 return newBuilderInstance().
75 is(SpecialAttr.RELATIONSHIP_TYPES.toString()).
76 notInRelationshipTypes(type, moreTypes);
77 }
78
79 public UserCompleteCondition inRoles(final String role, final String... moreRoles) {
80 return newBuilderInstance().
81 is(SpecialAttr.ROLES.toString()).
82 inRoles(role, moreRoles);
83 }
84
85 public UserCompleteCondition notInRoles(final String role, final String... moreRoles) {
86 return newBuilderInstance().
87 is(SpecialAttr.ROLES.toString()).
88 notInRoles(role, moreRoles);
89 }
90
91 public UserCompleteCondition withPrivileges(final String privilege, final String... morePrivileges) {
92 return newBuilderInstance().
93 is(SpecialAttr.PRIVILEGES.toString()).
94 withPrivileges(privilege, morePrivileges);
95 }
96
97 public UserCompleteCondition withoutPrivileges(final String privilege, final String... morePrivileges) {
98 return newBuilderInstance().
99 is(SpecialAttr.PRIVILEGES.toString()).
100 withoutPrivileges(privilege, morePrivileges);
101 }
102
103 protected static class Builder extends AbstractFiqlSearchConditionBuilder.Builder<
104 UserProperty, UserPartialCondition, UserCompleteCondition>
105 implements UserProperty, UserPartialCondition, UserCompleteCondition {
106
107 public Builder(final Map<String, String> properties) {
108 super(properties);
109 }
110
111 public Builder(final Builder parent) {
112 super(parent);
113 }
114
115 @Override
116 public UserProperty is(final String property) {
117 Builder builder = new Builder(this);
118 builder.result = property;
119 return builder;
120 }
121
122 @Override
123 public UserCompleteCondition inGroups(final String group, final String... moreGroups) {
124 this.result = SpecialAttr.GROUPS.toString();
125 return condition(FiqlParser.EQ, group, (Object[]) moreGroups);
126 }
127
128 @Override
129 public UserCompleteCondition notInGroups(final String group, final String... moreGroups) {
130 this.result = SpecialAttr.GROUPS.toString();
131 return condition(FiqlParser.NEQ, group, (Object[]) moreGroups);
132 }
133
134 @Override
135 public UserCompleteCondition inRelationships(final String anyObject, final String... moreAnyObjects) {
136 this.result = SpecialAttr.RELATIONSHIPS.toString();
137 return condition(FiqlParser.EQ, anyObject, (Object[]) moreAnyObjects);
138 }
139
140 @Override
141 public UserCompleteCondition notInRelationships(final String anyObject, final String... moreAnyObjects) {
142 this.result = SpecialAttr.RELATIONSHIPS.toString();
143 return condition(FiqlParser.NEQ, anyObject, (Object[]) moreAnyObjects);
144 }
145
146 @Override
147 public UserCompleteCondition inRelationshipTypes(final String type, final String... moreTypes) {
148 this.result = SpecialAttr.RELATIONSHIP_TYPES.toString();
149 return condition(FiqlParser.EQ, type, (Object[]) moreTypes);
150 }
151
152 @Override
153 public UserCompleteCondition notInRelationshipTypes(final String type, final String... moreTypes) {
154 this.result = SpecialAttr.RELATIONSHIP_TYPES.toString();
155 return condition(FiqlParser.NEQ, type, (Object[]) moreTypes);
156 }
157
158 @Override
159 public UserCompleteCondition inRoles(final String role, final String... moreRoles) {
160 this.result = SpecialAttr.ROLES.toString();
161 return condition(FiqlParser.EQ, role, (Object[]) moreRoles);
162 }
163
164 @Override
165 public UserCompleteCondition notInRoles(final String role, final String... moreRoles) {
166 this.result = SpecialAttr.ROLES.toString();
167 return condition(FiqlParser.NEQ, role, (Object[]) moreRoles);
168 }
169
170 @Override
171 public UserCompleteCondition withPrivileges(final String privilege, final String... morePrivileges) {
172 this.result = SpecialAttr.PRIVILEGES.toString();
173 return condition(FiqlParser.EQ, privilege, (Object[]) morePrivileges);
174 }
175
176 @Override
177 public UserCompleteCondition withoutPrivileges(final String privilege, final String... morePrivileges) {
178 this.result = SpecialAttr.PRIVILEGES.toString();
179 return condition(FiqlParser.NEQ, privilege, (Object[]) morePrivileges);
180 }
181 }
182 }