// create a helper and get it to execute the rule
// eventually we will create a subclass of helper for each rule and createHelperAdapter
// an implementation of execute from the rule source. for now we create a generic
// helper and call the generic execute method which interprets the rule
HelperAdapter helper;
try {
Constructor constructor = helperImplementationClass.getConstructor(Rule.class);
helper = (HelperAdapter)constructor.newInstance(this);
//helper = (RuleHelper)helperClass.newInstance();
//helper.setRule(this);
helper.execute(recipient, args);
} catch (NoSuchMethodException e) {
// should not happen!!!
System.out.println("cannot find constructor " + helperImplementationClass.getCanonicalName() + "(Rule) for helper class");
e.printStackTrace(System.out);
return;