package com.algocrafts.selenium; import java.util.function.Predicate; public class Locating<T1 extends SearchScope<T1>, T2> { private final T1 where; private final Locator<T1, T2> locator; /** * Constructor of the Locating. * * @param where where * @param locator locator */ public Locating(T1 where, Locator<T1, T2> locator) { this.where = where; this.locator = locator; } public T2 locate() { return locator.locate(where); } public <T> T locate(Locator<T2, T> locator) { return this.locator.andThen(locator).locate(where); } public <T> T use(Locator<T1, T> locator) { return locator.locate(where); } public boolean test(Predicate<T2> predicate) { return this.locator.and(predicate).test(where); } @Override public String toString() { return locator.toString(); } }