KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > browser > core > model > filter > LdapFilterItemComponent


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20
21 package org.apache.directory.ldapstudio.browser.core.model.filter;
22
23
24 import java.util.ArrayList JavaDoc;
25 import java.util.Arrays JavaDoc;
26 import java.util.List JavaDoc;
27
28 import org.apache.directory.ldapstudio.browser.core.model.filter.parser.LdapFilterToken;
29
30
31 public class LdapFilterItemComponent extends LdapFilterComponent
32 {
33
34     private LdapFilterToken filtertypeToken;
35
36     private LdapFilterToken valueToken;
37
38
39     public LdapFilterItemComponent( LdapFilter parent )
40     {
41         super( parent );
42         this.filtertypeToken = null;
43         this.valueToken = null;
44     }
45
46
47     public boolean setStartToken( LdapFilterToken attributeToken )
48     {
49         if ( attributeToken != null && attributeToken.getType() == LdapFilterToken.ATTRIBUTE )
50         {
51             super.setStartToken( attributeToken );
52             return true;
53         }
54         else
55         {
56             return false;
57         }
58     }
59
60
61     public boolean setAttributeToken( LdapFilterToken attributeToken )
62     {
63         return this.setStartToken( attributeToken );
64     }
65
66
67     public LdapFilterToken getAttributeToken()
68     {
69         return this.getStartToken();
70     }
71
72
73     public boolean setFiltertypeToken( LdapFilterToken filtertypeToken )
74     {
75         if ( this.filtertypeToken == null
76             && filtertypeToken != null
77             && ( filtertypeToken.getType() == LdapFilterToken.EQUAL
78                 || filtertypeToken.getType() == LdapFilterToken.GREATER
79                 || filtertypeToken.getType() == LdapFilterToken.LESS
80                 || filtertypeToken.getType() == LdapFilterToken.APROX || filtertypeToken.getType() == LdapFilterToken.PRESENT ) )
81         {
82             this.filtertypeToken = filtertypeToken;
83             return true;
84         }
85         else
86         {
87             return false;
88         }
89     }
90
91
92     public LdapFilterToken getFilterToken()
93     {
94         return this.filtertypeToken;
95     }
96
97
98     public boolean setValueToken( LdapFilterToken valueToken )
99     {
100         if ( this.valueToken == null && valueToken != null && valueToken.getType() == LdapFilterToken.VALUE )
101         {
102             this.valueToken = valueToken;
103             return true;
104         }
105         else
106         {
107             return false;
108         }
109     }
110
111
112     public LdapFilterToken getValueToken()
113     {
114         return this.valueToken;
115     }
116
117
118     public boolean isValid()
119     {
120         return startToken != null && filtertypeToken != null
121             && ( valueToken != null || filtertypeToken.getType() == LdapFilterToken.PRESENT );
122     }
123
124
125     public LdapFilterToken[] getTokens()
126     {
127         // collect tokens
128
List JavaDoc tokenList = new ArrayList JavaDoc();
129         if ( this.startToken != null )
130         {
131             tokenList.add( this.startToken );
132         }
133         if ( this.filtertypeToken != null )
134         {
135             tokenList.add( this.filtertypeToken );
136         }
137         if ( this.valueToken != null )
138         {
139             tokenList.add( this.valueToken );
140         }
141
142         // sort tokens
143
LdapFilterToken[] tokens = ( LdapFilterToken[] ) tokenList.toArray( new LdapFilterToken[tokenList.size()] );
144         Arrays.sort( tokens );
145
146         // return
147
return tokens;
148     }
149
150
151     public String JavaDoc toString()
152     {
153         return ( startToken != null ? startToken.getValue() : "" )
154             + ( filtertypeToken != null ? filtertypeToken.getValue() : "" )
155             + ( valueToken != null ? valueToken.getValue() : "" );
156     }
157
158
159     public boolean addFilter( LdapFilter filter )
160     {
161         return false;
162     }
163
164
165     public LdapFilter[] getInvalidFilters()
166     {
167         if ( this.isValid() )
168         {
169             return new LdapFilter[0];
170         }
171         else
172         {
173             return new LdapFilter[]
174                 { parent };
175         }
176     }
177
178
179     public LdapFilter getFilter( int offset )
180     {
181         if ( this.startToken != null && this.startToken.getOffset() <= offset
182             && offset < this.startToken.getOffset() + this.startToken.getLength() )
183         {
184             return this.parent;
185         }
186         else if ( this.filtertypeToken != null && this.filtertypeToken.getOffset() <= offset
187             && offset < this.filtertypeToken.getOffset() + this.filtertypeToken.getLength() )
188         {
189             return this.parent;
190         }
191         else if ( this.valueToken != null && this.valueToken.getOffset() <= offset
192             && offset < this.valueToken.getOffset() + this.valueToken.getLength() )
193         {
194             return this.parent;
195         }
196         else
197         {
198             return null;
199         }
200     }
201
202
203     public String JavaDoc getInvalidCause()
204     {
205         if ( this.startToken == null )
206         {
207             return "Missing attribute name";
208         }
209         else if ( this.filtertypeToken == null )
210         {
211             return "Missing filter type, select one of '=', '>=', '<=','~='";
212         }
213         else if ( this.valueToken == null )
214         {
215             return "Missing value";
216         }
217         else
218         {
219             return null;
220         }
221     }
222
223 }
224
Popular Tags