WeldAnnotationBuilder.java
- package org.jbehave.core.configuration.weld;
- import org.jbehave.core.annotations.weld.UsingWeld;
- import org.jbehave.core.configuration.AnnotationBuilder;
- import org.jbehave.core.configuration.AnnotationFinder;
- import org.jbehave.core.configuration.AnnotationMonitor;
- import org.jbehave.core.configuration.AnnotationRequired;
- import org.jbehave.core.configuration.Configuration;
- import org.jbehave.core.configuration.PrintStreamAnnotationMonitor;
- import org.jbehave.core.steps.CompositeStepsFactory;
- import org.jbehave.core.steps.InjectableStepsFactory;
- /**
- * Extends {@link AnnotationBuilder} to provide Weld-based dependency injection
- * if {@link UsingWeld} annotation is present.
- *
- * @author Aaron Walker
- */
- public class WeldAnnotationBuilder extends AnnotationBuilder {
- private Configuration configuration;
- private InjectableStepsFactory stepsFactory;
- public WeldAnnotationBuilder(Class<?> annotatedClass) {
- this(annotatedClass, new PrintStreamAnnotationMonitor());
- }
- public WeldAnnotationBuilder(Class<?> annotatedClass, AnnotationMonitor annotationMonitor) {
- super(annotatedClass, annotationMonitor);
- }
- public WeldAnnotationBuilder(Class<?> annotatedClass, Configuration configuration,
- InjectableStepsFactory stepsFactory) {
- this(annotatedClass);
- this.configuration = configuration;
- this.stepsFactory = stepsFactory;
- }
- @Override
- public Configuration buildConfiguration() throws AnnotationRequired {
- AnnotationFinder finder = annotationFinder();
- if (finder.isAnnotationPresent(UsingWeld.class)) {
- if (configuration == null) {
- return super.buildConfiguration();
- }
- return configuration;
- } else {
- annotationMonitor().annotationNotFound(UsingWeld.class, annotatedClass());
- }
- return super.buildConfiguration();
- }
- @Override
- public InjectableStepsFactory buildStepsFactory(Configuration configuration) {
- InjectableStepsFactory factoryUsingSteps = super.buildStepsFactory(configuration);
- if (stepsFactory != null) {
- return new CompositeStepsFactory(stepsFactory, factoryUsingSteps);
- }
- return factoryUsingSteps;
- }
- }