1 package org.paneris.jammyjoes.controller;
2
3 import java.util.Vector;
4
5 import org.melati.poem.util.EnumUtils;
6 import org.melati.poem.util.PagedEnumeration;
7 import org.melati.util.StringUtils;
8 import org.paneris.jammyjoes.model.JammyjoesDatabase;
9
10 /**
11 * @author Tim
12 *
13 * To change this generated comment edit the template variable "typecomment":
14 * Window>Preferences>Java>Templates.
15 * To enable and disable the creation of type comments go to
16 * Window>Preferences>Java>Code Generation.
17 */
18 public class ProductSearch {
19
20 private JammyjoesDatabase db;
21 private int maxHits;
22 private Logger logger;
23
24 public ProductSearch(JammyjoesDatabase db, int maxHits, Logger logger) {
25 this.db = db;
26 this.maxHits = maxHits;
27 this.logger = logger;
28 }
29
30 public PagedEnumeration doSearch(SearchCriteria criteria) {
31 Vector where = new Vector();
32 criteria.constrain(where);
33 where.add(q("retailpriceincvat") + " IS NOT NULL");
34 String whereClause = EnumUtils.concatenated(" AND ", where.elements());
35 logger.logWhereClause(whereClause);
36 PagedEnumeration results = db.getProductTable().unFiltetredSelection(whereClause, criteria.order(), false, 0, maxHits);
37 logger.logHits(results.getTotalCount());
38 return results;
39 }
40
41 public String q(String name) {
42 StringBuffer b = new StringBuffer();
43 StringUtils.appendQuoted(b, name, '"');
44 return b.toString();
45 }
46
47 }