package org.fluentlenium.core.filter;
import org.fluentlenium.core.domain.FluentWebElement;
import java.util.function.Predicate;
/**
* Filter constructors.
*/
public final class FilterConstructor {
private FilterConstructor() {
// Utility class
}
/**
* Create a filter by name
*
* @param name element name
* @return filter object
*/
public static AttributeFilter withName(String name) {
return new AttributeFilter("name", name);
}
/**
* Create a filter by id
*
* @param id element id
* @return filter object
*/
public static AttributeFilter withId(String id) {
return new AttributeFilter("id", id);
}
/**
* Create a filter by class
*
* @param klass CSS class name
* @return filter object
*/
public static AttributeFilter withClass(String klass) {
return new AttributeFilter("class", klass);
}
/**
* Create a filter by text
*
* @param text to filter in content
* @return filter object
*/
public static AttributeFilter withText(String text) {
return new AttributeFilter("text", MatcherConstructor.equal(text));
}
/**
* Create a filter by text
*
* @param text to filter in content
* @return filter object
*/
public static AttributeFilter containingText(String text) {
return new AttributeFilter("text", MatcherConstructor.contains(text));
}
/**
* Create a filter builder for the attribute by text
*
* @return filter builder object
*/
public static FilterBuilder withText() {
return new FilterBuilder("text");
}
/**
* Create a filter by text content
*
* @param text to filter in content
* @return filter object
*/
public static AttributeFilter withTextContent(String text) {
return new AttributeFilter("textContent", MatcherConstructor.equal(text));
}
/**
* Create a filter by text content
*
* @param text to filter in content
* @return filter object
*/
public static AttributeFilter containingTextContent(String text) {
return new AttributeFilter("textContent", MatcherConstructor.contains(text));
}
/**
* Create a filter builder by text content
*
* @return filter builder object
*/
public static FilterBuilder withTextContent() {
return new FilterBuilder("textContent");
}
/**
* Create a filter builder for the attribute
*
* @param attribute attribute name
* @return filter builder object
*/
public static FilterBuilder with(String attribute) {
return new FilterBuilder(attribute);
}
/**
* Create a filter builder for the attribute by name
*
* @return filter builder object
*/
public static FilterBuilder withName() {
return new FilterBuilder("name");
}
/**
* Create a filter builder for the attribute by id
*
* @return filter builder object
*/
public static FilterBuilder withId() {
return new FilterBuilder("id");
}
/**
* Create a filter builder for the attribute by class
*
* @return filter builder object
*/
public static FilterBuilder withClass() {
return new FilterBuilder("class");
}
/**
* Create a filter based on a element predicate
*
* @param predicate predicate
* @return predicate filter
*/
public static PredicateFilter withPredicate(Predicate<FluentWebElement> predicate) {
return new PredicateFilter(predicate);
}
}