add --shared
[pylucene.git] / lucene-java-3.4.0 / lucene / contrib / queryparser / src / java / org / apache / lucene / queryParser / core / nodes / QuotedFieldQueryNode.java
1 package org.apache.lucene.queryParser.core.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.parser.EscapeQuerySyntax;
21
22 /**
23  * A {@link QuotedFieldQueryNode} represents phrase query. Example:
24  * "life is great"
25  */
26 public class QuotedFieldQueryNode extends FieldQueryNode {
27
28   private static final long serialVersionUID = -6675157780051428987L;
29
30   /**
31    * @param field
32    *          - field name
33    * @param text
34    *          - value
35    * @param begin
36    *          - position in the query string
37    * @param end
38    *          - position in the query string
39    */
40   public QuotedFieldQueryNode(CharSequence field, CharSequence text, int begin,
41       int end) {
42     super(field, text, begin, end);
43   }
44
45   @Override
46   public CharSequence toQueryString(EscapeQuerySyntax escaper) {
47     if (isDefaultField(this.field)) {
48       return "\"" + getTermEscapeQuoted(escaper) + "\"";
49     } else {
50       return this.field + ":" + "\"" + getTermEscapeQuoted(escaper) + "\"";
51     }
52   }
53
54   @Override
55   public String toString() {
56     return "<quotedfield start='" + this.begin + "' end='" + this.end
57         + "' field='" + this.field + "' term='" + this.text + "'/>";
58   }
59
60   @Override
61   public QuotedFieldQueryNode cloneTree() throws CloneNotSupportedException {
62     QuotedFieldQueryNode clone = (QuotedFieldQueryNode) super.cloneTree();
63     // nothing to do here
64     return clone;
65   }
66
67 }