package org.fluentlenium.core.conditions;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Conditions for string
*/
public class StringConditionsImpl extends AbstractObjectConditions<String> implements StringConditions {
/**
* Creates a new conditions object on string.
*
* @param string underlying string
*/
public StringConditionsImpl(String string) {
super(string);
}
/**
* Creates a new conditions object on string.
*
* @param string underlying string
* @param negation negation value
*/
public StringConditionsImpl(String string, boolean negation) {
super(string, negation);
}
@Override
protected StringConditionsImpl newInstance(boolean negationValue) {
return new StringConditionsImpl(object, negationValue);
}
@Override
@Negation
public StringConditionsImpl not() {
return (StringConditionsImpl) super.not();
}
@Override
public boolean contains(CharSequence charSequence) {
return verify(input -> {
if (input == null) {
return false;
}
return input.contains(charSequence);
});
}
@Override
public boolean startsWith(String prefix) {
return verify(input -> {
if (input == null) {
return false;
}
return input.startsWith(prefix);
});
}
@Override
public boolean endsWith(String suffix) {
return verify(input -> {
if (input == null) {
return false;
}
return input.endsWith(suffix);
});
}
@Override
public boolean equalTo(String anotherString) {
return verify(input -> {
if (input == null) {
return false;
}
return input.equals(anotherString);
});
}
@Override
public boolean equalToIgnoreCase(String anotherString) {
return verify(input -> {
if (input == null) {
return false;
}
return input.equalsIgnoreCase(anotherString);
});
}
@Override
public boolean matches(String regex) {
return verify(input -> {
if (input == null) {
return false;
}
return input.matches(regex);
});
}
@Override
public boolean matches(Pattern pattern) {
return verify(input -> {
if (input == null) {
return false;
}
Matcher matcher = pattern.matcher(input);
return matcher.matches();
});
}
}