01: /**
02: * Milin Radivoj, Jan 11, 2006
03: * rmilin@gmail.com
04: */package org.enhydra.snapper.business;
05:
06: import java.io.File;
07: import java.util.Properties;
08: import java.util.Vector;
09:
10: import org.enhydra.snapper.Snapper;
11: import org.enhydra.snapper.spec.SuggestBuilder;
12: import org.enhydra.snapper.wrapper.lucene.LuceneSuggest;
13: import org.enhydra.snapper.business.SiteListImpl;
14: import org.enhydra.snapper.spec.Site;
15:
16: import com.lutris.logging.Logger;
17:
18: public class SuggestBuilderImpl implements SuggestBuilder {
19:
20: public String suggest(String text) {
21:
22: StringBuffer result = null;
23: try {
24:
25: Properties prop = new Properties();
26:
27: SiteListImpl sli = new SiteListImpl();
28: Site[] sites = sli.getList();
29:
30: if (sites != null) {
31: for (int i = 0; i < sites.length; i++) {
32: String indexDir = sites[i].getINDEXDIR();
33: File temp = null;
34:
35: if (indexDir != null && !indexDir.equals("")) {
36: temp = new File(indexDir);
37: } else {
38: if (Snapper.getIndexDir().endsWith("\\")
39: || Snapper.getIndexDir().endsWith("/"))
40: temp = new File(Snapper.getIndexDir()
41: + sites[i].getNAME());
42: else
43: temp = new File(Snapper.getIndexDir()
44: + File.separator
45: + sites[i].getNAME());
46: }
47:
48: if (temp.isDirectory()) {
49:
50: prop.setProperty(sites[i].getNAME(), temp
51: .getAbsolutePath());
52: }
53: }
54:
55: LuceneSuggest suggester = new LuceneSuggest();
56: Vector luceneresult = suggester.suggest(prop, text);
57:
58: if (luceneresult != null && luceneresult.size() > 0) {
59: result = new StringBuffer();
60:
61: result.append("<ul class=\"LSRes\">");
62:
63: for (int i = 0; i < luceneresult.size(); i++) {
64: String temp = (String) luceneresult.get(i);
65: if (temp != null) {
66: temp.trim();
67: result.append("<li class=\"LSRow\">" + temp
68: + "</li>");
69: }
70: }
71:
72: result.append("</ul>");
73: }
74:
75: }
76:
77: } catch (Exception e) {
78: Snapper.getLogChanel().write(
79: Logger.ERROR,
80: "Could not setup Searcher caught a " + e.getClass()
81: + "\n with message: " + e.getMessage());
82:
83: result = null;
84: }
85:
86: if (result != null)
87: return result.toString();
88: else
89: return null;
90: }
91:
92: }
|