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
|
package com.jclark.xsl.expr;
import com.jclark.xsl.om.*;
abstract class ConvertibleNumberExpr extends ConvertibleExpr implements NumberExpr {
ConvertibleNumberExpr makeNumberExpr() {
return this;
}
ConvertibleBooleanExpr makePredicateExpr() {
return new ConvertibleBooleanExpr() {
public boolean eval(Node node, ExprContext context) throws XSLException {
return Converter.positionToBoolean(ConvertibleNumberExpr.this.eval(node, context),
context);
}
};
}
ConvertibleBooleanExpr makeBooleanExpr() {
return new ConvertibleBooleanExpr() {
public boolean eval(Node node, ExprContext context) throws XSLException {
return Converter.toBoolean(ConvertibleNumberExpr.this.eval(node, context));
}
};
}
ConvertibleVariantExpr makeVariantExpr() {
return new ConvertibleVariantExpr() {
public Variant eval(Node node, ExprContext context) throws XSLException {
return new NumberVariant(ConvertibleNumberExpr.this.eval(node, context));
}
};
}
ConvertibleStringExpr makeStringExpr() {
return new ConvertibleStringExpr() {
public String eval(Node node, ExprContext context) throws XSLException {
return Converter.toString(ConvertibleNumberExpr.this.eval(node, context));
}
};
}
}
|