1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.core.interceptor.context;
21
22
23 import java.util.Set;
24
25 import javax.naming.directory.SearchControls;
26
27 import org.apache.directory.server.core.CoreSession;
28 import org.apache.directory.shared.ldap.filter.ExprNode;
29 import org.apache.directory.shared.ldap.filter.SearchScope;
30 import org.apache.directory.shared.ldap.message.AliasDerefMode;
31 import org.apache.directory.shared.ldap.message.ManageDsaITControl;
32 import org.apache.directory.shared.ldap.message.MessageTypeEnum;
33 import org.apache.directory.shared.ldap.message.SearchRequest;
34 import org.apache.directory.shared.ldap.name.LdapDN;
35 import org.apache.directory.shared.ldap.schema.AttributeTypeOptions;
36
37
38
39
40
41
42
43
44
45 public class SearchOperationContext extends SearchingOperationContext
46 {
47
48 private ExprNode filter;
49
50
51
52
53
54 public SearchOperationContext( CoreSession session )
55 {
56 super( session );
57 }
58
59
60
61
62
63
64 public SearchOperationContext( CoreSession session, SearchRequest searchRequest ) throws Exception
65 {
66 super( session );
67
68 this.dn = searchRequest.getBase();
69 this.filter = searchRequest.getFilter();
70 this.abandoned = searchRequest.isAbandoned();
71 this.aliasDerefMode = searchRequest.getDerefAliases();
72
73 this.requestControls = searchRequest.getControls();
74 this.scope = searchRequest.getScope();
75 this.sizeLimit = searchRequest.getSizeLimit();
76 this.timeLimit = searchRequest.getTimeLimit();
77 this.noAttributes = searchRequest.getTypesOnly();
78 setReturningAttributes( searchRequest.getAttributes() );
79 }
80
81
82
83
84
85
86
87
88
89
90 public SearchOperationContext( CoreSession session, LdapDN dn, AliasDerefMode aliasDerefMode, ExprNode filter,
91 SearchControls searchControls ) throws Exception
92 {
93 super( session, dn, aliasDerefMode, searchControls );
94 this.filter = filter;
95 }
96
97
98
99
100
101
102
103
104
105
106
107
108 public SearchOperationContext( CoreSession session, LdapDN dn, SearchScope scope,
109 ExprNode filter, AliasDerefMode aliasDerefMode, Set<AttributeTypeOptions> returningAttributes )
110 {
111 super( session, dn, aliasDerefMode, returningAttributes );
112 super.setScope( scope );
113 this.filter = filter;
114 }
115
116
117
118
119
120
121
122
123 public boolean hasManageDsaItControl()
124 {
125 return super.hasRequestControl( ManageDsaITControl.CONTROL_OID );
126 }
127
128
129
130
131
132 public ExprNode getFilter()
133 {
134 return filter;
135 }
136
137
138
139
140
141
142
143 public void setFilter( ExprNode filter )
144 {
145 this.filter = filter;
146 }
147
148
149
150
151
152 public String toString()
153 {
154 return "SearchContext for DN '" + getDn().getUpName() + "', filter :'"
155 + filter + "'";
156 }
157
158
159
160
161
162 public String getName()
163 {
164 return MessageTypeEnum.SEARCH_REQUEST.name();
165 }
166 }