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

io.hyperfoil.api.processor.RequestProcessorBuilder Maven / Gradle / Ivy

There is a newer version: 0.27.1
Show newest version
package io.hyperfoil.api.processor;

import java.util.function.Function;

import io.hyperfoil.api.config.IncludeBuilders;
import io.hyperfoil.api.config.Locator;
import io.hyperfoil.api.session.Action;

/**
 * Processors for any type of request.
 */
@IncludeBuilders(
      @IncludeBuilders.Conversion(from = Action.Builder.class, adapter = RequestProcessorBuilder.ActionBuilderConverter.class)
)
public interface RequestProcessorBuilder extends Processor.Builder {

   static RequestProcessorBuilder adapt(Action.Builder builder) {
      return new ActionBuilderAdapter(builder);
   }

   class ActionBuilderConverter implements Function {
      @Override
      public RequestProcessorBuilder apply(Action.Builder builder) {
         return new ActionBuilderAdapter(builder);
      }
   }

   class ActionBuilderAdapter implements RequestProcessorBuilder {
      private final Action.Builder builder;

      public ActionBuilderAdapter(Action.Builder builder) {
         this.builder = builder;
      }

      @Override
      public void prepareBuild() {
         builder.prepareBuild();
      }

      @Override
      public RequestProcessorBuilder copy(Locator locator) {
         return new ActionBuilderAdapter(builder.copy(locator));
      }

      @Override
      public Processor build(boolean fragmented) {
         return new Processor.ActionAdapter(builder.build());
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy