package org.ocpsoft.rewrite.annotation.context; import org.ocpsoft.rewrite.annotation.api.ClassContext; import org.ocpsoft.rewrite.config.ConfigurationBuilder; import org.ocpsoft.rewrite.config.ConfigurationRuleBuilder; import org.ocpsoft.rewrite.config.Rule; import org.ocpsoft.rewrite.config.RuleBuilder; import org.ocpsoft.rewrite.context.ContextBase; import org.ocpsoft.rewrite.context.EvaluationContext; import org.ocpsoft.rewrite.event.Rewrite; public class ClassContextImpl extends ContextBase implements ClassContext { private final ConfigurationBuilder config; private ConfigurationRuleBuilder configurationRuleBuilder; private final Class<?> javaClass; public ClassContextImpl(ConfigurationBuilder config, Class<?> clazz) { this.config = config; this.javaClass = clazz; } @Override public void setBaseRule(Rule rule) { configurationRuleBuilder = config.addRule(rule); } @Override public RuleBuilder getRuleBuilder() { if (configurationRuleBuilder == null) { configurationRuleBuilder = config.addRule(new Rule() { @Override public void perform(Rewrite event, EvaluationContext context) {} @Override public boolean evaluate(Rewrite event, EvaluationContext context) { return true; } @Override public String getId() { return null; } }); } return configurationRuleBuilder.getRuleBuilder(); } @Override public ConfigurationBuilder getConfigurationBuilder() { return config; } @Override public Class<?> getJavaClass() { return javaClass; } public boolean hasRuleBuildingStarted() { return configurationRuleBuilder != null; } }