@Override public Value evaluate(Scope scope, Object left) throws Exception { // this is rubbish Value reference = evaluation.evaluate(scope, left); Number number = reference.getNumber(); NumericConverter converter = NumericConverter.resolveConverter(number); Value value = converter.increment(number); Number result = value.getNumber(); reference.setValue(result); return ValueType.getTransient(number); }
@Override public Value convert(Number reference) { Short value = reference.shortValue(); return ValueType.getTransient(value); }
@Override public Value decrement(Number reference) { Short value = reference.shortValue(); return ValueType.getTransient(value - 1); }
@Override public Value convert(Number reference) { Double value = reference.doubleValue(); return ValueType.getTransient(value); }
@Override public Value decrement(Number reference) { Integer value = reference.intValue(); return ValueType.getTransient(value - 1); }
@Override public Value decrement(Number reference) { Float value = reference.floatValue(); return ValueType.getTransient(value - 1.0f); }
@Override public Value decrement(Number reference) { Long value = reference.longValue(); return ValueType.getTransient(value - 1L); }
@Override public Value convert(Number reference) { Long value = reference.longValue(); return ValueType.getTransient(value); }
@Override public Value decrement(Number reference) { Double value = reference.doubleValue(); return ValueType.getTransient(value - 1.0d); }
@Override public Value decrement(Number reference) { Byte value = reference.byteValue(); return ValueType.getTransient(value - 1); }