package glaze.test.http;
import java.util.regex.Pattern;
public final class Expressions
{
public static class Eq implements Expression
{
private final String expr;
public Eq(String expr)
{
this.expr = expr;
}
@Override
public boolean match(String value)
{
return expr.equalsIgnoreCase(value);
}
}
public static interface Expression
{
boolean match(String value);
}
public static class Regex implements Expression
{
private final Pattern pattern;
public Regex(String expr)
{
this.pattern = Pattern.compile(expr);
}
@Override
public boolean match(String value)
{
return pattern.matcher(value).matches();
}
}
public static Expression ANY = new Regex(".*");
public static Expression any()
{
return Expressions.ANY;
}
public static Expression eq(String expr)
{
return new Eq(expr);
}
public static Expression regex(String expr)
{
return new Regex(expr);
}
}