]> source.dussan.org Git - archiva.git/blob
d41ca82fb6d362cb8eedb06afa5291bcf0ae6740
[archiva.git] /
1 package org.apache.maven.repository.indexing.query;
2
3 import org.apache.lucene.index.Term;
4 import org.apache.lucene.queryParser.ParseException;
5 import org.apache.lucene.queryParser.QueryParser;
6 import org.apache.lucene.search.TermQuery;
7 import org.apache.maven.repository.indexing.RepositoryIndex;
8
9 /*
10  * Copyright 2001-2005 The Apache Software Foundation.
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  *      http://www.apache.org/licenses/LICENSE-2.0
17  
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  */
25
26 /**
27  * Class to hold a single field search condition
28  *
29  * @author Edwin Punzalan
30  */
31 public class SinglePhraseQuery
32     implements Query
33 {
34     private String field;
35
36     private String value;
37
38     /**
39      * Class constructor
40      *
41      * @param field the index field to search
42      * @param value the index value requirement
43      */
44     public SinglePhraseQuery( String field, String value )
45     {
46         this.field = field;
47         this.value = value;
48     }
49
50     /**
51      * Method to retrieve the name of the index field searched
52      *
53      * @return the name of the index field
54      */
55     public String getField()
56     {
57         return field;
58     }
59
60     /**
61      * Method to retrieve the value used in searching the index field
62      *
63      * @return the value to corresspond the index field
64      */
65     public String getValue()
66     {
67         return value;
68     }
69
70     public org.apache.lucene.search.Query createLuceneQuery( RepositoryIndex index )
71         throws ParseException
72     {
73         org.apache.lucene.search.Query qry;
74         if ( index.isKeywordField( this.field ) )
75         {
76             Term term = new Term( this.field, this.value );
77             qry = new TermQuery( term );
78         }
79         else
80         {
81             QueryParser parser = new QueryParser( this.field, index.getAnalyzer() );
82             qry = parser.parse( this.value );
83         }
84         return qry;
85     }
86 }