| QueryTranslator.java |
1 /**
2 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3 *
4 * This library is free software; you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1 of the License, or (at your option)
7 * any later version.
8 *
9 * This library is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 * details.
13 */
14
15 package com.liferay.portal.search.lucene;
16
17 import com.liferay.portal.kernel.search.Query;
18 import com.liferay.portal.kernel.search.StringQueryImpl;
19 import com.liferay.portal.kernel.util.StringPool;
20
21 import org.apache.lucene.queryParser.ParseException;
22 import org.apache.lucene.queryParser.QueryParser;
23
24 /**
25 * <a href="QueryTranslator.java.html"><b><i>View Source</i></b></a>
26 *
27 * @author Brian Wing Shun Chan
28 */
29 public class QueryTranslator {
30
31 public static org.apache.lucene.search.Query translate(Query query)
32 throws ParseException {
33
34 if (query instanceof BooleanQueryImpl) {
35 return ((BooleanQueryImpl)query).getBooleanQuery();
36 }
37 else if (query instanceof LuceneQueryImpl) {
38 return ((LuceneQueryImpl)query).getQuery();
39 }
40 else if (query instanceof StringQueryImpl) {
41 QueryParser parser = new QueryParser(
42 StringPool.BLANK, LuceneHelperUtil.getAnalyzer());
43
44 return parser.parse(query.toString());
45 }
46 else if (query instanceof TermQueryImpl) {
47 return ((TermQueryImpl)query).getTermQuery();
48 }
49 else {
50 return null;
51 }
52 }
53
54 }