1 package com.atlassian.user.search.query;
2
3
4
5
6 public abstract class AbstractEntityQueryParser implements EntityQueryParser
7 {
8 private final QueryValidator queryValidator = new QueryValidator();
9
10
11
12
13 protected void validateQuery(Query query) throws EntityQueryException
14 {
15 queryValidator.assertValid(query);
16 }
17
18
19
20
21
22
23
24 protected void validateBooleanToQueryType(BooleanQuery query, String queryClassName) throws EntityQueryException
25 {
26 queryValidator.assertValid(query);
27 }
28
29
30
31
32 protected String matchQueryToQueryType(Query query)
33 {
34 if (query instanceof UserQuery)
35 return UserQuery.class.getName();
36 if (query instanceof GroupQuery)
37 return GroupQuery.class.getName();
38 if (query instanceof MembershipQuery)
39 return MembershipQuery.class.getName();
40 return null;
41 }
42
43
44
45
46
47
48 protected Query identifyDefiningQuery(BooleanQuery booleanQuery)
49 {
50 if (booleanQuery instanceof MembershipQuery)
51 return booleanQuery;
52
53 for (Query query : booleanQuery.getQueries())
54 {
55 if (query instanceof TermQuery)
56 return query;
57 if (query instanceof BooleanQuery)
58 return identifyDefiningQuery((BooleanQuery) query);
59 }
60 return null;
61 }
62 }