package org.fluentlenium.core.conditions;
import org.fluentlenium.core.domain.FluentWebElement;
import java.util.function.Function;
import java.util.regex.Pattern;
/**
* Conditions for list of string.
*/
public class StringListConditionsImpl extends BaseObjectListConditions<String, StringConditions> implements StringConditions {
/**
* Creates a new list of string conditions
*
* @param conditions string conditions
* @param objectGetter getter of the underlying string
* @param conditionsGetter getter of the underlying string conditions
*/
public StringListConditionsImpl(Conditions<FluentWebElement> conditions, Function<FluentWebElement, String> objectGetter,
Function<FluentWebElement, StringConditions> conditionsGetter) {
super(conditions, objectGetter, conditionsGetter);
}
@Override
public StringListConditionsImpl not() {
return new StringListConditionsImpl(conditions.not(), objectGetter, conditionsGetter);
}
@Override
public boolean contains(CharSequence charSequence) {
return conditions.verify(input -> conditionsGetter.apply(input).contains(charSequence));
}
@Override
public boolean startsWith(String prefix) {
return conditions.verify(input -> conditionsGetter.apply(input).startsWith(prefix));
}
@Override
public boolean endsWith(String suffix) {
return conditions.verify(input -> conditionsGetter.apply(input).endsWith(suffix));
}
@Override
public boolean equalTo(String anotherString) {
return conditions.verify(input -> conditionsGetter.apply(input).equalTo(anotherString));
}
@Override
public boolean equalToIgnoreCase(String anotherString) {
return conditions.verify(input -> conditionsGetter.apply(input).equalToIgnoreCase(anotherString));
}
@Override
public boolean matches(String regex) {
return conditions.verify(input -> conditionsGetter.apply(input).matches(regex));
}
@Override
public boolean matches(Pattern pattern) {
return conditions.verify(input -> conditionsGetter.apply(input).matches(pattern));
}
}