rules.put(ruleClass.getName(), rule);
rulePool.put(ruleClass.getName(), rule);
	public AbstractRule getRuleByName(String name) throws RuleNotFoundException {		AbstractRule rule = (AbstractRule)rulePool.get(name);		// lazy init		if (rule == null) {			Class ruleClass = (Class)rules.get(name);			if (ruleClass == null) {				throw new RuleNotFoundException(name);			} else {				try {					rule = (AbstractRule)ruleClass.newInstance();					rules.put(ruleClass.getName(), rule);					return rule;				} catch (InstantiationException e) {					throw new RuleNotFoundException(name, e);				} catch (IllegalAccessException e) {					throw new RuleNotFoundException(name, e);				}			}		}		return null;	}