/** * Gets a method argument and checks if it's a number; it does NOT check if {@code args} is big enough. */ protected final Number getNumberMethodArg(List args, int argIdx) throws TemplateModelException { TemplateModel arg = (TemplateModel) args.get(argIdx); if (!(arg instanceof TemplateNumberModel)) { throw _MessageUtil.newMethodArgMustBeNumberException("?" + key, argIdx, arg); } else { return EvalUtil.modelToNumber((TemplateNumberModel) arg, null); } }
Number modelToNumber(TemplateModel model, Environment env) throws TemplateException { if (model instanceof TemplateNumberModel) { return EvalUtil.modelToNumber((TemplateNumberModel) model, this); } else { throw new NonNumericalException(this, model, env); } }
@Override protected TemplateModel formatNumber(Environment env, TemplateModel model) throws TemplateModelException { Number num = EvalUtil.modelToNumber((TemplateNumberModel) model, target); if (num instanceof Integer || num instanceof Long) { // Accelerate these fairly common cases return new SimpleScalar(num.toString()); } else { return new SimpleScalar(env.getCNumberFormat().format(num)); } }
NumberFormatter(TemplateNumberModel numberModel, Environment env) throws TemplateException { this.env = env; // As we format lazily, we need a snapshot of the format inputs: this.numberModel = numberModel; number = EvalUtil.modelToNumber(numberModel, target); // for BackwardCompatibleTemplateNumberFormat-s try { defaultFormat = env.getTemplateNumberFormat(stringBI.this, true); } catch (TemplateException e) { // `e` should always be a TemplateModelException here, but to be sure: throw _CoreAPI.ensureIsTemplateModelException("Failed to get default number format", e); } }
@Override protected TemplateModel formatNumber(Environment env, TemplateModel model) throws TemplateModelException { Number num = EvalUtil.modelToNumber((TemplateNumberModel) model, target); if (num instanceof Integer || num instanceof Long) {
throws TemplateModelException, TemplateException, NonStringException { if (leftModel instanceof TemplateNumberModel && rightModel instanceof TemplateNumberModel) { Number first = EvalUtil.modelToNumber((TemplateNumberModel) leftModel, leftExp); Number second = EvalUtil.modelToNumber((TemplateNumberModel) rightModel, rightExp); return _evalOnNumbers(env, parent, first, second); } else if (leftModel instanceof TemplateSequenceModel && rightModel instanceof TemplateSequenceModel) {
Number leftNum = EvalUtil.modelToNumber((TemplateNumberModel) leftValue, leftExp); Number rightNum = EvalUtil.modelToNumber((TemplateNumberModel) rightValue, rightExp); ArithmeticEngine ae = env != null
Number lhoNumber; if (lhoValue instanceof TemplateNumberModel) { lhoNumber = EvalUtil.modelToNumber((TemplateNumberModel) lhoValue, null); } else if (lhoValue == null) { throw InvalidReferenceException.getInstance(scope, variableName, getOperatorTypeAsString(), env);
/** * Gets a method argument and checks if it's a number; it does NOT check if {@code args} is big enough. */ protected final Number getNumberMethodArg(List args, int argIdx) throws TemplateModelException { TemplateModel arg = (TemplateModel) args.get(argIdx); if (!(arg instanceof TemplateNumberModel)) { throw _MessageUtil.newMethodArgMustBeNumberException("?" + key, argIdx, arg); } else { return EvalUtil.modelToNumber((TemplateNumberModel) arg, null); } }
/** * Gets a method argument and checks if it's a number; it does NOT check if {@code args} is big enough. */ protected final Number getNumberMethodArg(List args, int argIdx) throws TemplateModelException { TemplateModel arg = (TemplateModel) args.get(argIdx); if (!(arg instanceof TemplateNumberModel)) { throw _MessageUtil.newMethodArgMustBeNumberException("?" + key, argIdx, arg); } else { return EvalUtil.modelToNumber((TemplateNumberModel) arg, null); } }
Number modelToNumber(TemplateModel model, Environment env) throws TemplateException { if (model instanceof TemplateNumberModel) { return EvalUtil.modelToNumber((TemplateNumberModel) model, this); } else { throw new NonNumericalException(this, model, env); } }
Number modelToNumber(TemplateModel model, Environment env) throws TemplateException { if (model instanceof TemplateNumberModel) { return EvalUtil.modelToNumber((TemplateNumberModel) model, this); } else { throw new NonNumericalException(this, model, env); } }
@Override protected TemplateModel formatNumber(Environment env, TemplateModel model) throws TemplateModelException { Number num = EvalUtil.modelToNumber((TemplateNumberModel) model, target); if (num instanceof Integer || num instanceof Long) { // Accelerate these fairly common cases return new SimpleScalar(num.toString()); } else { return new SimpleScalar(env.getCNumberFormat().format(num)); } }
NumberFormatter(TemplateNumberModel numberModel, Environment env) throws TemplateException { this.env = env; // As we format lazily, we need a snapshot of the format inputs: this.numberModel = numberModel; number = EvalUtil.modelToNumber(numberModel, target); // for BackwardCompatibleTemplateNumberFormat-s try { defaultFormat = env.getTemplateNumberFormat(stringBI.this, true); } catch (TemplateException e) { // `e` should always be a TemplateModelException here, but to be sure: throw _CoreAPI.ensureIsTemplateModelException("Failed to get default number format", e); } }
NumberFormatter(TemplateNumberModel numberModel, Environment env) throws TemplateException { this.env = env; // As we format lazily, we need a snapshot of the format inputs: this.numberModel = numberModel; number = EvalUtil.modelToNumber(numberModel, target); // for BackwardCompatibleTemplateNumberFormat-s try { defaultFormat = env.getTemplateNumberFormat(stringBI.this, true); } catch (TemplateException e) { // `e` should always be a TemplateModelException here, but to be sure: throw _CoreAPI.ensureIsTemplateModelException("Failed to get default number format", e); } }
@Override protected TemplateModel formatNumber(Environment env, TemplateModel model) throws TemplateModelException { Number num = EvalUtil.modelToNumber((TemplateNumberModel) model, target); if (num instanceof Integer || num instanceof Long) { // Accelerate these fairly common cases return new SimpleScalar(num.toString()); } else { return new SimpleScalar(env.getCNumberFormat().format(num)); } }
@Override protected TemplateModel formatNumber(Environment env, TemplateModel model) throws TemplateModelException { Number num = EvalUtil.modelToNumber((TemplateNumberModel) model, target); if (num instanceof Integer || num instanceof Long) {
@Override protected TemplateModel formatNumber(Environment env, TemplateModel model) throws TemplateModelException { Number num = EvalUtil.modelToNumber((TemplateNumberModel) model, target); if (num instanceof Integer || num instanceof Long) {
throws TemplateModelException, TemplateException, NonStringException { if (leftModel instanceof TemplateNumberModel && rightModel instanceof TemplateNumberModel) { Number first = EvalUtil.modelToNumber((TemplateNumberModel) leftModel, leftExp); Number second = EvalUtil.modelToNumber((TemplateNumberModel) rightModel, rightExp); return _evalOnNumbers(env, parent, first, second); } else if (leftModel instanceof TemplateSequenceModel && rightModel instanceof TemplateSequenceModel) {
throws TemplateModelException, TemplateException, NonStringException { if (leftModel instanceof TemplateNumberModel && rightModel instanceof TemplateNumberModel) { Number first = EvalUtil.modelToNumber((TemplateNumberModel) leftModel, leftExp); Number second = EvalUtil.modelToNumber((TemplateNumberModel) rightModel, rightExp); return _evalOnNumbers(env, parent, first, second); } else if (leftModel instanceof TemplateSequenceModel && rightModel instanceof TemplateSequenceModel) {