View Javadoc

1   package org.paneris.jammyjoes.controller;
2   
3   import java.util.List;
4   
5   import org.melati.util.StringUtils;
6   import org.paneris.jammyjoes.model.Product;
7   
8   public class SimilarSearchCriteria implements SearchCriteria {
9   
10    Product similarToMe;
11    
12    public SimilarSearchCriteria(Product similarToMe) {
13      this.similarToMe = similarToMe;
14    }
15  
16    public void constrainOutOfStock(List constraints) {
17      constraints.add(q("stocklevel") + " > 0");
18    }
19  
20    public void constrainPrice(List constraints) {
21      constraints.add(q("retailpriceincvat") + " <= " + similarToMe.getRetailpriceincvat().doubleValue() * 1.1);
22    }
23  
24    public void constrainType(List constraints) {
25      String type = similarToMe.getType().getTroid().toString();
26      constraints.add("(" + q("type") + " = " + type + " OR " + q("type2") + " = " + type + ")");
27    }
28  
29    public void constrainId(List constraints) {
30      constraints.add(q("id") + " != " + similarToMe.getTroid());
31    }
32  
33    public String q(String name) {
34      StringBuffer b = new StringBuffer();
35      StringUtils.appendQuoted(b, name, '"');
36      return b.toString();
37    }
38  
39    public void constrain(List constraints) {
40      constrainOutOfStock(constraints);
41      constrainPrice(constraints);
42      constrainType(constraints);
43      constrainId(constraints);
44      constrainDicontinued(constraints);
45    }
46    
47    public void constrainDicontinued(List constraints) {
48      constraints.add(q("status") + " != " + similarToMe.getJammyjoesDatabaseTables().getProductStatusTable().getDiscontinued().getTroid());
49    }
50  
51    public String order() {
52      return (q("retailpriceincvat")) + " desc";
53    }
54  
55  }