All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ocpsoft.rewrite.config.ConfigurationRuleParameterBuilder Maven / Gradle / Ivy

/*
 * Copyright 2013 Lincoln Baxter, III
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.ocpsoft.rewrite.config;

import java.util.List;

import org.ocpsoft.rewrite.bind.Binding;
import org.ocpsoft.rewrite.bind.Evaluation;
import org.ocpsoft.rewrite.param.ConfigurableParameter;
import org.ocpsoft.rewrite.param.Constraint;
import org.ocpsoft.rewrite.param.Converter;
import org.ocpsoft.rewrite.param.ParameterBuilder;
import org.ocpsoft.rewrite.param.ParameterConfigurator;
import org.ocpsoft.rewrite.param.RegexConstraint;
import org.ocpsoft.rewrite.param.Transposition;
import org.ocpsoft.rewrite.param.Validator;

/**
 * A {@link ParameterBuilder} for a {@link ConfigurationRuleBuilder}
 * 
 * @author Lincoln Baxter, III
 */
public class ConfigurationRuleParameterBuilder
         implements
         ConfigurableParameter,
         ConfigurationRuleParameter,
         ConfigurationRuleParameterMatches,
         ConfigurationRuleParameterWhere,
         ConfigurationRuleBuilderOtherwise
{

   private final ConfigurationRuleBuilder parent;
   private ConfigurableParameter param;

   public ConfigurationRuleParameterBuilder(ConfigurationRuleBuilder parent,
            final ConfigurableParameter param)
   {
      this.parent = parent;
      this.param = param;

      this.bindsTo(Evaluation.property(param.getName()));
   }

   @Override
   public ConfigurationRuleParameterBuilder where(String parameter)
   {
      return parent.where(parameter);
   }

   @Override
   public ConfigurationRuleBuilderCustom addRule()
   {
      return parent.addRule();
   }

   @Override
   public ConfigurationRuleBuilder addRule(Rule rule)
   {
      return parent.addRule(rule);
   }

   @Override
   public List getRules()
   {
      return parent.getRules();
   }

   @Override
   public ConfigurationRuleParameterBuilder matches(final String pattern)
   {
      param.constrainedBy(new RegexConstraint(pattern));
      return this;
   }

   @Override
   public ConfigurationRuleParameterBuilder configuredBy(ParameterConfigurator configurator)
   {
      param.configuredBy(configurator);
      return this;
   }

   @Override
   public ConfigurationRuleParameterBuilder transposedBy(final Transposition transform)
   {
      param.transposedBy(transform);
      return this;
   }

   @Override
   public ConfigurationRuleParameterBuilder constrainedBy(final Constraint constraint)
   {
      param.constrainedBy(constraint);
      return this;
   }

   @Override
   public ConfigurationRuleParameterBuilder validatedBy(final Validator validator)
   {
      param.validatedBy(validator);
      return this;
   }

   @Override
   public ConfigurationRuleParameterBuilder convertedBy(final Converter converter)
   {
      param.convertedBy(converter);
      return this;
   }

   @Override
   public ConfigurationRuleParameterBuilder bindsTo(final Binding binding)
   {
      param.bindsTo(binding);
      return this;
   }

   @Override
   public ConfigurationRuleBuilderWithId withId(String id)
   {
      return parent.withId(id);
   }

   @Override
   public ConfigurationRuleBuilderWithPriority withPriority(int priority)
   {
      return parent.withPriority(priority);
   }

   @Override
   public List getBindings()
   {
      return param.getBindings();
   }

   @Override
   public String getName()
   {
      return param.getName();
   }

   @Override
   public Converter getConverter()
   {
      return param.getConverter();
   }

   @Override
   public Validator getValidator()
   {
      return param.getValidator();
   }

   @Override
   public List> getConstraints()
   {
      return param.getConstraints();
   }

   @Override
   public List> getTranspositions()
   {
      return param.getTranspositions();
   }

   @Override
   public String toString()
   {
      return param.toString();
   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy