public Rule parse(String ruleText) { StringCharReader reader = new StringCharReader(ruleText.trim()); RuleBuilder ruleBuilder = new RuleBuilder(); RuleParseState state = new RuleParserStateNormal(); state.process(ruleBuilder, reader); return ruleBuilder.build(); }
@Override public ConfigurationRuleBuilder perform(Operation operation) { for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) { operation = interceptor.perform(operation); } rule.perform(operation); return this; }
@Override public ConfigurationRuleBuilder when(Condition condition) { for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) { condition = interceptor.when(condition); } rule.when(condition); return this; }
@Override public ConfigurationRuleBuilder withId(String id) { for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) { id = interceptor.withId(id); } rule.withId(id); return this; }
@Override public ConfigurationRuleBuilder withPriority(int priority) { for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) { priority = interceptor.withPriority(priority); } rule.withPriority(priority); return this; }
@Override public ConfigurationRuleBuilderWhen when(Condition condition, Condition... conditions) { List<Condition> list = new LinkedList<Condition>(); list.add(condition); list.addAll(Arrays.asList(conditions)); for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) { list = interceptor.when(list); } rule.when(And.all(list.toArray(new Condition[list.size()]))); return this; }
@Override public ConfigurationRuleBuilderPerform perform(Operation operation, Operation... operations) { List<Operation> list = new LinkedList<Operation>(); list.add(operation); list.addAll(Arrays.asList(operations)); for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) { list = interceptor.perform(list); } rule.perform(Perform.all(list.toArray(new Operation[list.size()]))); return this; }
@Override public ConfigurationRuleParameterBuilder where(String name) { return new ConfigurationRuleParameterBuilder(this, rule.where(name)); }
@Override public ConfigurationRuleBuilderWithMetadata withMetadata(Object key, Object value) { rule.put(key, value); return this; }
@Override public void perform(Rewrite event, EvaluationContext context) { rule.perform(event, context); }
@Override public boolean evaluate(Rewrite event, EvaluationContext context) { return rule.evaluate(event, context); }
@Override public String getId() { return rule.getId(); }
@Override public ParameterStore getParameterStore() { return rule.getParameterStore(); }