1 package com.genimen.djeneric.web.actors; 2 3 import java.util.HashMap ; 4 import java.util.Iterator ; 5 import java.util.Map ; 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 _RESULT = "_result"; 19 protected DjenericSessionManager _mgr; 20 21 public FilterValidator(DjenericSessionManager mgr) 22 { 23 _mgr = mgr; 24 } 25 26 public HashMap validate(String extentName, Map values) 27 { 28 HashMap result = new HashMap (); 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 values, HashMap result) throws ObjectNotDefinedException, 47 DjenericException 48 { 49 Iterator it = values.entrySet().iterator(); 50 boolean hadError = false; 51 while (it.hasNext()) 52 { 53 Map.Entry entry = (Entry) it.next(); 54 String value = entry.getValue().toString(); 55 56 value = OqlUtil.stripOperator(value); 57 String propertyName = entry.getKey().toString(); 58 if (propertyName.startsWith(".")) continue; 60 61 String prompt = qbe.getProperty(propertyName).getPrompt(); 62 try 63 { 64 if (value.trim().length() > 0) qbe.setString(propertyName, value); 65 } 66 catch (NumberFormatException 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 |