InstanceStepsFactory.java
- package org.jbehave.core.steps;
- import static java.util.Arrays.asList;
- import java.util.ArrayList;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import org.jbehave.core.configuration.Configuration;
- /**
- * An {@link InjectableStepsFactory} that is provided Object instances.
- */
- public class InstanceStepsFactory extends AbstractStepsFactory {
- private final Map<Class<?>,Object> stepsInstances = new LinkedHashMap<>();
- public InstanceStepsFactory(Configuration configuration, Object... stepsInstances) {
- this(configuration, asList(stepsInstances));
- }
- public InstanceStepsFactory(Configuration configuration, List<?> stepsInstances) {
- super(configuration);
- for (Object instance : stepsInstances) {
- this.stepsInstances.put(instance.getClass(), instance);
- }
- }
- @Override
- protected List<Class<?>> stepsTypes() {
- return new ArrayList<>(stepsInstances.keySet());
- }
- @Override
- public Object createInstanceOfType(Class<?> type) {
- Object instance = stepsInstances.get(type);
- if (instance == null) {
- throw new StepsInstanceNotFound(type, this);
- }
- return instance;
- }
- }