package org.fluentlenium.core.inject;
import org.openqa.selenium.SearchContext;
/**
* Control interface for FluentLenium injection.
*/
public interface FluentInjectControl {
/**
* Inject object with FluentLenium resources.
*
* @param container container to inject with FluentLenium resources
* @return The container context related to the injected container
*/
ContainerContext inject(Object container);
/**
* Inject object with FluentLenium resources, using given search context and parent container.
*
* @param componentContainer container to inject with FluentLenium resources
* @param parentContainer parent container
* @param context search context to use for injection
* @return The container context related to the injected container
*/
ContainerContext injectComponent(Object componentContainer, Object parentContainer, SearchContext context);
/**
* Creates a new instance of a class inject it.
*
* @param cls class of the object to create
* @param <T> type of the object
* @return new container instance
* @see FluentInjectControl#inject(Object)
*/
<T> T newInstance(Class<T> cls);
}