public static Literal getLongLiteral(String numberToken, int startPos, int endPos, int radix) { try { long value = Long.parseLong(numberToken, radix); return new LongLiteral(numberToken, startPos, endPos, value); } catch (NumberFormatException ex) { throw new InternalParseException(new SpelParseException(startPos, ex, SpelMessage.NOT_A_LONG, numberToken)); } }
@Test public void test_unaryPlusWithNumberOperand() { ExpressionState expressionState = new ExpressionState(new StandardEvaluationContext()); { RealLiteral realLiteral = new RealLiteral("123.00", -1, -1, 123.0); OpPlus o = new OpPlus(-1, -1, realLiteral); TypedValue value = o.getValueInternal(expressionState); assertEquals(Double.class, value.getTypeDescriptor().getObjectType()); assertEquals(Double.class, value.getTypeDescriptor().getType()); assertEquals(realLiteral.getLiteralValue().getValue(), value.getValue()); } { IntLiteral intLiteral = new IntLiteral("123", -1, -1, 123); OpPlus o = new OpPlus(-1, -1, intLiteral); TypedValue value = o.getValueInternal(expressionState); assertEquals(Integer.class, value.getTypeDescriptor().getObjectType()); assertEquals(Integer.class, value.getTypeDescriptor().getType()); assertEquals(intLiteral.getLiteralValue().getValue(), value.getValue()); } { LongLiteral longLiteral = new LongLiteral("123", -1, -1, 123L); OpPlus o = new OpPlus(-1, -1, longLiteral); TypedValue value = o.getValueInternal(expressionState); assertEquals(Long.class, value.getTypeDescriptor().getObjectType()); assertEquals(Long.class, value.getTypeDescriptor().getType()); assertEquals(longLiteral.getLiteralValue().getValue(), value.getValue()); } }
public static Literal getLongLiteral(String numberToken, int pos, int radix) { try { long value = Long.parseLong(numberToken, radix); return new LongLiteral(numberToken, pos, value); } catch (NumberFormatException ex) { throw new InternalParseException(new SpelParseException(pos>>16, ex, SpelMessage.NOT_A_LONG, numberToken)); } }
@Test public void test_binaryPlusWithRightStringOperand() { ExpressionState expressionState = new ExpressionState(new StandardEvaluationContext()); LongLiteral n1 = new LongLiteral("123", -1, -1, 123); StringLiteral n2 = new StringLiteral("\" is a number\"", -1, -1, "\" is a number\""); OpPlus o = new OpPlus(-1, -1, n1, n2); TypedValue value = o.getValueInternal(expressionState); assertEquals(String.class, value.getTypeDescriptor().getObjectType()); assertEquals(String.class, value.getTypeDescriptor().getType()); assertEquals("123 is a number", value.getValue()); }
@Test public void test_binaryPlusWithLeftStringOperand() { ExpressionState expressionState = new ExpressionState(new StandardEvaluationContext()); StringLiteral n1 = new StringLiteral("\"number is \"", -1, -1, "\"number is \""); LongLiteral n2 = new LongLiteral("123", -1, -1, 123); OpPlus o = new OpPlus(-1, -1, n1, n2); TypedValue value = o.getValueInternal(expressionState); assertEquals(String.class, value.getTypeDescriptor().getObjectType()); assertEquals(String.class, value.getTypeDescriptor().getType()); assertEquals("number is 123", value.getValue()); }
LongLiteral n1 = new LongLiteral("123", -1, -1, 123L); LongLiteral n2 = new LongLiteral("456", -1, -1, 456L); OpPlus o = new OpPlus(-1, -1, n1, n2); TypedValue value = o.getValueInternal(expressionState);
public static Literal getLongLiteral(String numberToken, int pos, int radix) { try { long value = Long.parseLong(numberToken, radix); return new LongLiteral(numberToken, pos, value); } catch (NumberFormatException ex) { throw new InternalParseException(new SpelParseException(pos>>16, ex, SpelMessage.NOT_A_LONG, numberToken)); } }