1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
package com.jclark.xsl.expr;
import com.jclark.xsl.om.*;
abstract class ConvertibleVariantExpr extends ConvertibleExpr implements VariantExpr {
ConvertibleVariantExpr makeVariantExpr() {
return this;
}
ConvertibleBooleanExpr makePredicateExpr() {
return new ConvertibleBooleanExpr() {
public boolean eval(Node node, ExprContext context) throws XSLException {
return ConvertibleVariantExpr.this.eval(node, context).convertToPredicate(context);
}
};
}
ConvertibleBooleanExpr makeBooleanExpr() {
return new ConvertibleBooleanExpr() {
public boolean eval(Node node, ExprContext context) throws XSLException {
return ConvertibleVariantExpr.this.eval(node, context).convertToBoolean();
}
};
}
ConvertibleNumberExpr makeNumberExpr() {
return new ConvertibleNumberExpr() {
public double eval(Node node, ExprContext context) throws XSLException {
return ConvertibleVariantExpr.this.eval(node, context).convertToNumber();
}
};
}
ConvertibleStringExpr makeStringExpr() {
return new ConvertibleStringExpr() {
public String eval(Node node, ExprContext context) throws XSLException {
return ConvertibleVariantExpr.this.eval(node, context).convertToString();
}
};
}
ConvertibleNodeSetExpr makeNodeSetExpr() {
return new ConvertibleNodeSetExpr() {
public NodeIterator eval(Node node, ExprContext context) throws XSLException {
return ConvertibleVariantExpr.this.eval(node, context).convertToNodeSet();
}
};
}
}
|