public List<ByteBuffer> getRoutingKeys(ITuple tuple) { List<ByteBuffer> keys = new ArrayList<>(routingKeys.size()); for (String s : routingKeys) { Object value = tuple.getValueByField(s); ByteBuffer serialized = CodecRegistry.DEFAULT_INSTANCE.codecFor(value).serialize(value, ProtocolVersion.NEWEST_SUPPORTED); keys.add(serialized); } return keys; } }
@Override @SuppressWarnings("unchecked") public <E> T setList(int i, List<E> v) { return setValue(i, codecFor(i).serialize(v, protocolVersion)); }
@Override @SuppressWarnings("unchecked") public <K, V> T setMap(int i, Map<K, V> v) { return setValue(i, codecFor(i).serialize(v, protocolVersion)); }
@Override @SuppressWarnings("unchecked") public <E> T setSet(int i, Set<E> v) { return setValue(i, codecFor(i).serialize(v, protocolVersion)); }
@Override @SuppressWarnings("unchecked") public <E> T setList(int i, List<E> v) { return setValue(i, codecFor(i).serialize(v, protocolVersion)); }
@Override public T setLong(int i, long v) { TypeCodec<Long> codec = codecFor(i, Long.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveLongCodec) bb = ((TypeCodec.PrimitiveLongCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setByte(int i, byte v) { TypeCodec<Byte> codec = codecFor(i, Byte.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveByteCodec) bb = ((TypeCodec.PrimitiveByteCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setShort(int i, short v) { TypeCodec<Short> codec = codecFor(i, Short.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveShortCodec) bb = ((TypeCodec.PrimitiveShortCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setLong(int i, long v) { TypeCodec<Long> codec = codecFor(i, Long.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveLongCodec) bb = ((TypeCodec.PrimitiveLongCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setDouble(int i, double v) { TypeCodec<Double> codec = codecFor(i, Double.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveDoubleCodec) bb = ((TypeCodec.PrimitiveDoubleCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setFloat(int i, float v) { TypeCodec<Float> codec = codecFor(i, Float.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveFloatCodec) bb = ((TypeCodec.PrimitiveFloatCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setBool(int i, boolean v) { TypeCodec<Boolean> codec = codecFor(i, Boolean.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveBooleanCodec) bb = ((TypeCodec.PrimitiveBooleanCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setTime(int i, long v) { TypeCodec<Long> codec = codecFor(i, Long.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveLongCodec) bb = ((TypeCodec.PrimitiveLongCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public <K, V> T setMap(int i, Map<K, V> v, TypeToken<K> keysType, TypeToken<V> valuesType) { return setValue( i, codecFor(i, TypeTokens.mapOf(keysType, valuesType)).serialize(v, protocolVersion)); }
@Override public T setByte(int i, byte v) { TypeCodec<Byte> codec = codecFor(i, Byte.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveByteCodec) bb = ((TypeCodec.PrimitiveByteCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public T setFloat(int i, float v) { TypeCodec<Float> codec = codecFor(i, Float.class); ByteBuffer bb; if (codec instanceof TypeCodec.PrimitiveFloatCodec) bb = ((TypeCodec.PrimitiveFloatCodec) codec).serializeNoBoxing(v, protocolVersion); else bb = codec.serialize(v, protocolVersion); return setValue(i, bb); }
@Override public <V> T set(int i, V v, TypeCodec<V> codec) { checkType(i, codec.getCqlType().getName()); return setValue(i, codec.serialize(v, protocolVersion)); }
@Override public <V> T set(int i, V v, TypeCodec<V> codec) { checkType(i, codec.getCqlType().getName()); return setValue(i, codec.serialize(v, protocolVersion)); }
@SuppressWarnings("unchecked") public TypeCodecAssert<T> cannotSerialize(Object value) { if (version == null) fail("ProtocolVersion cannot be null"); try { actual.serialize((T) value, version); fail("Should not have been able to serialize " + value + " with " + actual); } catch (Exception e) { // ok } return this; }
@Test( groups = "unit", expectedExceptions = {IllegalArgumentException.class}) public void collectionTooLargeTest() throws Exception { DataType cqlType = DataType.list(DataType.cint()); List<Integer> list = Collections.nCopies(65536, 1); TypeCodec<List<?>> codec = codecRegistry.codecFor(cqlType); codec.serialize(list, ProtocolVersion.V2); }