add --shared
[pylucene.git] / lucene-java-3.4.0 / lucene / contrib / queryparser / src / java / org / apache / lucene / queryParser / standard / nodes / WildcardQueryNode.java
1 package org.apache.lucene.queryParser.standard.nodes;
2
3 /**
4  * Licensed to the Apache Software Foundation (ASF) under one or more
5  * contributor license agreements.  See the NOTICE file distributed with
6  * this work for additional information regarding copyright ownership.
7  * The ASF licenses this file to You under the Apache License, Version 2.0
8  * (the "License"); you may not use this file except in compliance with
9  * the License.  You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 import org.apache.lucene.queryParser.core.nodes.FieldQueryNode;
21 import org.apache.lucene.queryParser.core.parser.EscapeQuerySyntax;
22
23 /**
24  * A {@link WildcardQueryNode} represents wildcard query This does not apply to
25  * phrases. Examples: a*b*c Fl?w? m?ke*g
26  */
27 public class WildcardQueryNode extends FieldQueryNode {
28   private static final long serialVersionUID = 0L;
29
30   /**
31    * @param field
32    *          - field name
33    * @param text
34    *          - value that contains one or more wild card characters (? or *)
35    * @param begin
36    *          - position in the query string
37    * @param end
38    *          - position in the query string
39    */
40   public WildcardQueryNode(CharSequence field, CharSequence text, int begin,
41       int end) {
42     super(field, text, begin, end);
43   }
44
45   public WildcardQueryNode(FieldQueryNode fqn) {
46     this(fqn.getField(), fqn.getText(), fqn.getBegin(), fqn.getEnd());
47   }
48
49   @Override
50   public CharSequence toQueryString(EscapeQuerySyntax escaper) {
51     if (isDefaultField(this.field)) {
52       return getTermEscaped(escaper);
53     } else {
54       return this.field + ":" + getTermEscaped(escaper);
55     }
56   }
57
58   @Override
59   public String toString() {
60     return "<wildcard field='" + this.field + "' term='" + this.text + "'/>";
61   }
62
63   @Override
64   public WildcardQueryNode cloneTree() throws CloneNotSupportedException {
65     WildcardQueryNode clone = (WildcardQueryNode) super.cloneTree();
66
67     // nothing to do here
68
69     return clone;
70   }
71
72 }