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

org.fluentlenium.core.FluentControlImpl Maven / Gradle / Ivy

package org.fluentlenium.core;

import org.fluentlenium.adapter.DefaultFluentControlContainer;
import org.fluentlenium.adapter.FluentControlContainer;
import org.fluentlenium.configuration.Configuration;
import org.fluentlenium.configuration.ConfigurationFactoryProvider;
import org.openqa.selenium.WebDriverException;

/**
 * Default implementation of {@link FluentControl}.
 * 

* It delegates all calls to an underlying {@link FluentControlContainer} containing the {@link FluentDriver} * instance, and a {@link Configuration} instance. * * Do not put any logic here. Consider it as a proxy exposing fluentlenium-core to end user */ public class FluentControlImpl implements FluentControl { static { // this is a workaround for a weird NoClassDefFoundError // Seems to be some kind of Race condition try { Class.forName(WebDriverException.class.getName()); } catch (Exception e) { throw new AssertionError(e); } } private final FluentControlContainer controlContainer; private Configuration configuration; public FluentControlImpl() { this(new DefaultFluentControlContainer()); } /** * The configuration for this control is provided via itself, without having a * {@link org.fluentlenium.configuration.FluentConfiguration} annotation specified. * * @param controlContainer the control interface container */ public FluentControlImpl(FluentControlContainer controlContainer) { this.controlContainer = controlContainer; this.configuration = ConfigurationFactoryProvider.newConfiguration(getClass()); } /** * Creates a new fluent adapter, using given control interface container. * * @param controlContainer control interface container * @param clazz class from which {@link org.fluentlenium.configuration.FluentConfiguration} * annotation configuration will be looked up */ public FluentControlImpl(FluentControlContainer controlContainer, Class clazz) { this.controlContainer = controlContainer; configuration = ConfigurationFactoryProvider.newConfiguration(clazz); } /** * Creates a new fluent adapter using the provided {@code FluentControl} which may be e.g. a {@link FluentDriver} * instance. * * @param fluentControl the fluent control */ public FluentControlImpl(FluentControl fluentControl) { this.controlContainer = new DefaultFluentControlContainer(); controlContainer.setFluentControl(fluentControl); } @Override public FluentControlContainer getControlContainer() { return controlContainer; } @Override public FluentControl getFluentControl() { return controlContainer.getFluentControl(); } @Override public Configuration getConfiguration() { return configuration; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy