KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > web > actors > FilterValidator


1 package com.genimen.djeneric.web.actors;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.Map JavaDoc;
6 import java.util.Map.Entry;
7
8 import com.genimen.djeneric.language.Messages;
9 import com.genimen.djeneric.repository.DjQueryByExample;
10 import com.genimen.djeneric.repository.exceptions.DjenericException;
11 import com.genimen.djeneric.repository.exceptions.ObjectNotDefinedException;
12 import com.genimen.djeneric.repository.exceptions.PropertyFormatException;
13 import com.genimen.djeneric.web.util.DjenericSessionManager;
14 import com.genimen.djeneric.web.util.OqlUtil;
15
16 public class FilterValidator
17 {
18   protected static final String JavaDoc _RESULT = "_result";
19   protected DjenericSessionManager _mgr;
20
21   public FilterValidator(DjenericSessionManager mgr)
22   {
23     _mgr = mgr;
24   }
25
26   public HashMap JavaDoc validate(String JavaDoc extentName, Map JavaDoc values)
27   {
28     HashMap JavaDoc result = new HashMap JavaDoc();
29
30     result.put(_RESULT, "error");
31     try
32     {
33       DjQueryByExample qbe = _mgr.getPrimarySession().createQueryByExample(extentName);
34
35       boolean hadError = setQbe(qbe, values, result);
36       if (!hadError) result.put(_RESULT, "ok");
37     }
38     catch (DjenericException dje)
39     {
40       result.put(_RESULT, dje.getMessage());
41       System.out.println(dje.getMessage());
42     }
43     return result;
44   }
45
46   protected boolean setQbe(DjQueryByExample qbe, Map JavaDoc values, HashMap JavaDoc result) throws ObjectNotDefinedException,
47       DjenericException
48   {
49     Iterator JavaDoc it = values.entrySet().iterator();
50     boolean hadError = false;
51     while (it.hasNext())
52     {
53       Map.Entry JavaDoc entry = (Entry) it.next();
54       String JavaDoc value = entry.getValue().toString();
55
56       value = OqlUtil.stripOperator(value);
57       String JavaDoc propertyName = entry.getKey().toString();
58       // Skip properties starting with a '.'
59
if (propertyName.startsWith(".")) continue;
60
61       String JavaDoc prompt = qbe.getProperty(propertyName).getPrompt();
62       try
63       {
64         if (value.trim().length() > 0) qbe.setString(propertyName, value);
65       }
66       catch (NumberFormatException JavaDoc nfe)
67       {
68         result.put(propertyName, Messages.getString("global.invalidValue", value, prompt));
69         hadError = true;
70       }
71       catch (PropertyFormatException pfe)
72       {
73         result.put(propertyName, Messages.getString("global.invalidValue", value, prompt));
74         hadError = true;
75       }
76     }
77     return hadError;
78   }
79
80 }
81
Popular Tags