| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.lucene.queryparser.flexible.standard.builders; |
| |
| import org.apache.lucene.queryparser.flexible.core.QueryNodeException; |
| import org.apache.lucene.queryparser.flexible.core.builders.QueryTreeBuilder; |
| import org.apache.lucene.queryparser.flexible.core.nodes.BooleanQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.BoostQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.FieldQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.FuzzyQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.GroupQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.MatchAllDocsQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.MatchNoDocsQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.ModifierQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.SlopQueryNode; |
| import org.apache.lucene.queryparser.flexible.core.nodes.TokenizedPhraseQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.MultiPhraseQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.PointQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.PointRangeQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.PrefixWildcardQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.TermRangeQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.RegexpQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.SynonymQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.nodes.WildcardQueryNode; |
| import org.apache.lucene.queryparser.flexible.standard.processors.StandardQueryNodeProcessorPipeline; |
| import org.apache.lucene.search.Query; |
| |
| /** |
| * This query tree builder only defines the necessary map to build a |
| * {@link Query} tree object. It should be used to generate a {@link Query} tree |
| * object from a query node tree processed by a |
| * {@link StandardQueryNodeProcessorPipeline}. |
| * |
| * @see QueryTreeBuilder |
| * @see StandardQueryNodeProcessorPipeline |
| */ |
| public class StandardQueryTreeBuilder extends QueryTreeBuilder implements |
| StandardQueryBuilder { |
| |
| public StandardQueryTreeBuilder() { |
| setBuilder(GroupQueryNode.class, new GroupQueryNodeBuilder()); |
| setBuilder(FieldQueryNode.class, new FieldQueryNodeBuilder()); |
| setBuilder(BooleanQueryNode.class, new BooleanQueryNodeBuilder()); |
| setBuilder(FuzzyQueryNode.class, new FuzzyQueryNodeBuilder()); |
| setBuilder(PointQueryNode.class, new DummyQueryNodeBuilder()); |
| setBuilder(PointRangeQueryNode.class, new PointRangeQueryNodeBuilder()); |
| setBuilder(BoostQueryNode.class, new BoostQueryNodeBuilder()); |
| setBuilder(ModifierQueryNode.class, new ModifierQueryNodeBuilder()); |
| setBuilder(WildcardQueryNode.class, new WildcardQueryNodeBuilder()); |
| setBuilder(TokenizedPhraseQueryNode.class, new PhraseQueryNodeBuilder()); |
| setBuilder(MatchNoDocsQueryNode.class, new MatchNoDocsQueryNodeBuilder()); |
| setBuilder(PrefixWildcardQueryNode.class, |
| new PrefixWildcardQueryNodeBuilder()); |
| setBuilder(TermRangeQueryNode.class, new TermRangeQueryNodeBuilder()); |
| setBuilder(RegexpQueryNode.class, new RegexpQueryNodeBuilder()); |
| setBuilder(SlopQueryNode.class, new SlopQueryNodeBuilder()); |
| setBuilder(SynonymQueryNode.class, |
| new SynonymQueryNodeBuilder()); |
| setBuilder(MultiPhraseQueryNode.class, new MultiPhraseQueryNodeBuilder()); |
| setBuilder(MatchAllDocsQueryNode.class, new MatchAllDocsQueryNodeBuilder()); |
| |
| } |
| |
| @Override |
| public Query build(QueryNode queryNode) throws QueryNodeException { |
| return (Query) super.build(queryNode); |
| } |
| |
| } |