org.fluentlenium.core.components.LazyComponentList Maven / Gradle / Ivy
package org.fluentlenium.core.components;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import org.fluentlenium.core.domain.ListImpl;
import org.fluentlenium.core.domain.WrapsElements;
import org.openqa.selenium.WebElement;
/**
* A list of component that lazy initialize from it's related list of elements.
*
* @param type of component.
*/
public class LazyComponentList extends ListImpl implements List, WrapsElements, LazyComponents {
private final ComponentInstantiator instantiator;
private final Class componentClass;
private final List elements;
private final List> lazyComponentsListeners = new ArrayList<>();
private final AtomicReference