package lux.xquery;
import lux.xpath.AbstractExpression;
import lux.xpath.ExpressionVisitor;
public class Satisfies extends AbstractExpression {
private final Quantifier quantifier;
private final Variable var;
public Satisfies (Quantifier quantifier, Variable var, AbstractExpression sequence, AbstractExpression condition) {
super (Type.SATISFIES);
this.quantifier = quantifier;
this.var = var;
subs = new AbstractExpression[] { sequence, condition };
}
public enum Quantifier {
SOME, EVERY
}
@Override
public AbstractExpression accept(ExpressionVisitor visitor) {
super.acceptSubs (visitor);
return visitor.visit (this);
}
@Override
public void toString(StringBuilder buf) {
buf.append (quantifier.toString().toLowerCase()).append(' ');
var.toString(buf);
buf.append (" in ");
subs[0].toString (buf);
buf.append (" satisfies ");
subs[1].toString (buf);
}
@Override
public int getPrecedence() {
return 0;
}
}