Package org.ocpsoft.rewrite.annotation.context

Source Code of org.ocpsoft.rewrite.annotation.context.ClassContextImpl

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;
   }

}
TOP

Related Classes of org.ocpsoft.rewrite.annotation.context.ClassContextImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.