1 46 package org.mr.api.jms.selector; 47 48 import java.util.HashMap ; 49 import java.util.Map ; 50 51 import javax.jms.InvalidSelectorException ; 52 import javax.jms.Message ; 53 54 import org.mr.api.jms.selector.syntax.Selector; 55 import org.mr.kernel.services.PayLoadSelector; 56 import org.mr.core.protocol.MantaBusMessage; 57 58 import org.apache.commons.logging.Log; 59 import org.apache.commons.logging.LogFactory; 60 71 public class SelectorManager implements PayLoadSelector{ 72 73 private Map selectorMap = null; 74 private static SelectorManager instance = null; 75 private Log log; 76 77 78 private SelectorManager(){ 79 selectorMap = new HashMap (11); 80 log=LogFactory.getLog("SelectorManager"); 81 } 83 84 public static synchronized SelectorManager getInstance(){ 85 if (instance == null) 86 instance = new SelectorManager(); 87 88 return instance; 89 } 91 92 public boolean accept(String statement , MantaBusMessage msg){ 93 94 boolean result = true; 95 96 Selector selector = (Selector)selectorMap.get(statement); 97 if (selector == null){ 98 try { 99 selector = new Selector(statement); 101 selectorMap.put(statement,selector); 102 } catch (InvalidSelectorException e) { 104 if(log.isErrorEnabled()) 107 log.error("InvalidSelectorException, statement " + statement + " is invalid.",e); 108 } } 111 Message message = (Message )msg.getPayload(); 112 if (message != null) 113 result = selector.accept(message); 114 115 return result; 116 }} | Popular Tags |