KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > alfresco > repo > search > impl > lucene > query > AnyStructuredFieldPosition


1 /*
2  * Copyright (C) 2005 Alfresco, Inc.
3  *
4  * Licensed under the Mozilla Public License version 1.1
5  * with a permitted attribution clause. You may obtain a
6  * copy of the License at
7  *
8  * http://www.alfresco.org/legal/license.txt
9  *
10  * Unless required by applicable law or agreed to in writing,
11  * software distributed under the License is distributed on an
12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific
14  * language governing permissions and limitations under the
15  * License.
16  */

17 package org.alfresco.repo.search.impl.lucene.query;
18
19 import java.io.IOException JavaDoc;
20
21 /**
22  * @author andyh
23  *
24  * TODO To change the template for this generated type comment go to Window -
25  * Preferences - Java - Code Style - Code Templates
26  */

27 public class AnyStructuredFieldPosition extends AbstractStructuredFieldPosition
28 {
29
30     /**
31      *
32      */

33     public AnyStructuredFieldPosition(String JavaDoc termText)
34     {
35         super(termText, true, false);
36         if (termText == null)
37         {
38             setTerminal(false);
39         }
40     }
41
42     public AnyStructuredFieldPosition()
43     {
44         super(null, false, false);
45     }
46
47     /*
48      * (non-Javadoc)
49      *
50      * @see org.alfresco.lucene.extensions.StructuredFieldPosition#matches(int,
51      * int, org.apache.lucene.index.TermPositions)
52      */

53     public int matches(int start, int end, int offset) throws IOException JavaDoc
54     {
55         // we are doing //name
56
if (getCachingTermPositions() != null)
57         {
58             setTerminal(true);
59             int realPosition = 0;
60             int adjustedPosition = 0;
61             getCachingTermPositions().reset();
62             int count = getCachingTermPositions().freq();
63             for (int i = 0; i < count; i++)
64             {
65                 realPosition = getCachingTermPositions().nextPosition();
66                 adjustedPosition = realPosition - start;
67                 if ((end != -1) && (realPosition > end))
68                 {
69                     return -1;
70                 }
71                 if (adjustedPosition > offset)
72                 {
73                     return adjustedPosition;
74                 }
75             }
76         }
77         else
78         {
79             // we are doing //
80
setTerminal(false);
81             return offset;
82         }
83         return -1;
84     }
85     
86     public String JavaDoc getDescription()
87     {
88         return "Any";
89     }
90
91 }
92
Popular Tags