public boolean isLong() { return token.getType() == MsgPackType.INTEGER; }
private void ensureSameType(MsgPackToken x, MsgPackToken y) { // transform number types for comparison if (x.getType() == MsgPackType.INTEGER && y.getType() == MsgPackType.FLOAT) { x.setType(MsgPackType.FLOAT); x.setValue((double) x.getIntegerValue()); } else if (x.getType() == MsgPackType.FLOAT && y.getType() == MsgPackType.INTEGER) { y.setType(MsgPackType.FLOAT); y.setValue((double) y.getIntegerValue()); } else if (x.getType() != y.getType()) { throw new JsonConditionException( String.format( "Cannot compare values of different types: %s and %s", x.getType(), y.getType())); } }
private void ensureSameType(MsgPackToken x, MsgPackToken y) { // transform number types for comparison if (x.getType() == MsgPackType.INTEGER && y.getType() == MsgPackType.FLOAT) { x.setType(MsgPackType.FLOAT); x.setValue((double) x.getIntegerValue()); } else if (x.getType() == MsgPackType.FLOAT && y.getType() == MsgPackType.INTEGER) { y.setType(MsgPackType.FLOAT); y.setValue((double) y.getIntegerValue()); } else if (x.getType() != y.getType()) { throw new JsonConditionException( String.format( "Cannot compare values of different types: %s and %s", x.getType(), y.getType())); } }
public DirectBuffer getString() { if (!isString()) { throw new RuntimeException( String.format("expected String but found '%s'", token.getType())); } return token.getValueBuffer(); }
public DirectBuffer getString() { if (!isString()) { throw new RuntimeException( String.format("expected String but found '%s'", token.getType())); } return token.getValueBuffer(); }
public DirectBuffer getLongAsString() { if (!isLong()) { throw new RuntimeException(String.format("expected Long but found '%s'", token.getType())); } final long key = token.getIntegerValue(); final String converted = String.valueOf(key); longResultBuffer.wrap(converted.getBytes()); return longResultBuffer; } }
public DirectBuffer getLongAsString() { if (!isLong()) { throw new RuntimeException(String.format("expected Long but found '%s'", token.getType())); } final long key = token.getIntegerValue(); final String converted = String.valueOf(key); longResultBuffer.wrap(converted.getBytes()); return longResultBuffer; } }
@Override public boolean matches( MsgPackTraversalContext ctx, DirectBuffer filterContext, MsgPackToken value) { return !ctx.hasElements() && !value.getType().isScalar(); } }
@Override public boolean matches( MsgPackTraversalContext ctx, DirectBuffer filterContext, MsgPackToken value) { return !ctx.hasElements() && !value.getType().isScalar(); } }
private void parseValue( TokenParseContext tokenContext, String key, int valuePosition, MsgPackToken value) { switch (value.getType()) { case MAP: parseMapValue(tokenContext, key, value); break; case ARRAY: parseArrayValue(tokenContext, key, value); break; default: parsePrimitiveValue(tokenContext, key, valuePosition, value); break; } }
private boolean lessThanOrEqual(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() <= y.getIntegerValue(); } else { return x.getFloatValue() <= y.getFloatValue(); } }
private boolean greaterThan(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() > y.getIntegerValue(); } else { return x.getFloatValue() > y.getFloatValue(); } }
private boolean lessThanOrEqual(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() <= y.getIntegerValue(); } else { return x.getFloatValue() <= y.getFloatValue(); } }
private boolean greaterThan(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() > y.getIntegerValue(); } else { return x.getFloatValue() > y.getFloatValue(); } }
private boolean greaterThanOrEqual(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() >= y.getIntegerValue(); } else { return x.getFloatValue() >= y.getFloatValue(); } }
private boolean lessThan(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() < y.getIntegerValue(); } else { return x.getFloatValue() < y.getFloatValue(); } }
private boolean greaterThanOrEqual(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() >= y.getIntegerValue(); } else { return x.getFloatValue() >= y.getFloatValue(); } }
private boolean lessThan(MsgPackToken x, MsgPackToken y) { ensureSameType(x, y); ensureNumber(x); if (x.getType() == MsgPackType.INTEGER) { return x.getIntegerValue() < y.getIntegerValue(); } else { return x.getFloatValue() < y.getFloatValue(); } }