QueryTranslator.java |
1 /** 2 * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved. 3 * 4 * 5 * 6 * 7 * The contents of this file are subject to the terms of the Liferay Enterprise 8 * Subscription License ("License"). You may not use this file except in 9 * compliance with the License. You can obtain a copy of the License by 10 * contacting Liferay, Inc. See the License for the specific language governing 11 * permissions and limitations under the License, including but not limited to 12 * distribution rights of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 * SOFTWARE. 21 */ 22 23 package com.liferay.portal.search.lucene; 24 25 import com.liferay.portal.kernel.search.Query; 26 import com.liferay.portal.kernel.search.StringQueryImpl; 27 import com.liferay.portal.kernel.util.StringPool; 28 29 import org.apache.lucene.queryParser.ParseException; 30 import org.apache.lucene.queryParser.QueryParser; 31 32 /** 33 * <a href="QueryTranslator.java.html"><b><i>View Source</i></b></a> 34 * 35 * @author Brian Wing Shun Chan 36 */ 37 public class QueryTranslator { 38 39 public static org.apache.lucene.search.Query translate(Query query) 40 throws ParseException { 41 42 if (query instanceof BooleanQueryImpl) { 43 return ((BooleanQueryImpl)query).getBooleanQuery(); 44 } 45 else if (query instanceof LuceneQueryImpl) { 46 return ((LuceneQueryImpl)query).getQuery(); 47 } 48 else if (query instanceof StringQueryImpl) { 49 QueryParser parser = new QueryParser( 50 StringPool.BLANK, LuceneUtil.getAnalyzer()); 51 52 return parser.parse(query.toString()); 53 } 54 else if (query instanceof TermQueryImpl) { 55 return ((TermQueryImpl)query).getTermQuery(); 56 } 57 else { 58 return null; 59 } 60 } 61 62 }