static UserType build( KeyspaceMetadata ksm, Row row, VersionNumber version, Cluster cluster, Map<String, UserType> userTypes) { ProtocolVersion protocolVersion = cluster.getConfiguration().getProtocolOptions().getProtocolVersion(); CodecRegistry codecRegistry = cluster.getConfiguration().getCodecRegistry(); String keyspace = row.getString(KeyspaceMetadata.KS_NAME); String name = row.getString(TYPE_NAME); List<String> fieldNames = row.getList(COLS_NAMES, String.class); List<String> fieldTypes = row.getList(COLS_TYPES, String.class); List<Field> fields = new ArrayList<Field>(fieldNames.size()); for (int i = 0; i < fieldNames.size(); i++) { DataType fieldType; if (version.getMajor() >= 3.0) { fieldType = DataTypeCqlNameParser.parse( fieldTypes.get(i), cluster, ksm.getName(), userTypes, ksm.userTypes, false, false); } else { fieldType = DataTypeClassNameParser.parseOne(fieldTypes.get(i), protocolVersion, codecRegistry); } fields.add(new Field(fieldNames.get(i), fieldType)); } return new UserType(keyspace, name, false, fields, protocolVersion, codecRegistry); }
for (Map.Entry<String, String> entry : rawFields.entrySet()) fields.add( new UserType.Field( entry.getKey(), parseOne(entry.getValue(), protocolVersion, codecRegistry)));
String fieldName = CBUtil.readString(buffer); DataType fieldType = decode(buffer, protocolVersion, codecRegistry); fields.add(new UserType.Field(fieldName, fieldType));
List<UserType.Field> fields = new ArrayList<UserType.Field>(rawFields.size()); for (Map.Entry<String, String> entry : rawFields.entrySet()) fields.add(new UserType.Field(entry.getKey(), parseOne(entry.getValue(), protocolVersion, codecRegistry))); return new UserType(keyspace, typeName, fields, protocolVersion, codecRegistry);
List<UserType.Field> fields = new ArrayList<UserType.Field>(rawFields.size()); for (Map.Entry<String, String> entry : rawFields.entrySet()) fields.add(new UserType.Field(entry.getKey(), parseOne(entry.getValue(), protocolVersion, codecRegistry)));
List<UserType.Field> fields = new ArrayList<UserType.Field>(rawFields.size()); for (Map.Entry<String, String> entry : rawFields.entrySet()) fields.add(new UserType.Field(entry.getKey(), parseOne(entry.getValue(), protocolVersion, codecRegistry))); return new UserType(keyspace, typeName, fields, protocolVersion, codecRegistry);
"table", false, newArrayList(new Field("f1", varchar()), new Field("f2", varchar())), V3, new CodecRegistry()); "table", false, newArrayList(new Field("f1", text()), new Field("f2", varchar())), V3, new CodecRegistry()); "table", false, newArrayList(new Field("f1", varchar()), new Field("f2", text())), V3, new CodecRegistry()); "table", false, newArrayList(new Field("f1", text()), new Field("f2", text())), V3, new CodecRegistry());
String fieldName = CBUtil.readString(buffer); DataType fieldType = decode(buffer, protocolVersion, codecRegistry); fields.add(new UserType.Field(fieldName, fieldType));
"t", false, Arrays.asList(new UserType.Field("a", DataType.blob())), protocolVersion, codecRegistry); false, Arrays.asList( new UserType.Field("t", DataType.text()), new UserType.Field("i", DataType.cint()), new UserType.Field("L", DataType.list(DataType.text())), new UserType.Field("s", DataType.map(DataType.cint(), udt1))), protocolVersion, codecRegistry);
String fieldName = CBUtil.readString(buffer); DataType fieldType = decode(buffer, protocolVersion, codecRegistry); fields.add(new UserType.Field(fieldName, fieldType));
String fieldName = CBUtil.readString(buffer); DataType fieldType = decode(buffer, protocolVersion, codecRegistry); fields.add(new UserType.Field(fieldName, fieldType));
@Test(groups = "unit") public void should_deserialize_empty_buffer_as_udt_with_null_values() { CodecRegistry codecRegistry = new CodecRegistry(); UserType udt = new UserType( "ks", "t", false, Arrays.asList( new UserType.Field("t", DataType.text()), new UserType.Field("i", DataType.cint()), new UserType.Field("l", DataType.list(DataType.text()))), ProtocolVersion.NEWEST_SUPPORTED, codecRegistry); UDTValue expected = udt.newValue(); expected.setString("t", null); expected.setToNull("i"); expected.setList("l", null); UDTValue actual = codecRegistry .codecFor(udt, UDTValue.class) .deserialize(ByteBuffer.allocate(0), ProtocolVersion.NEWEST_SUPPORTED); assertThat(actual).isNotNull(); assertThat(actual).isEqualTo(expected); }
static UserType build(KeyspaceMetadata ksm, Row row, VersionNumber version, Cluster cluster, Map<String, UserType> userTypes) { ProtocolVersion protocolVersion = cluster.getConfiguration().getProtocolOptions().getProtocolVersion(); CodecRegistry codecRegistry = cluster.getConfiguration().getCodecRegistry(); String keyspace = row.getString(KeyspaceMetadata.KS_NAME); String name = row.getString(TYPE_NAME); List<String> fieldNames = row.getList(COLS_NAMES, String.class); List<String> fieldTypes = row.getList(COLS_TYPES, String.class); List<Field> fields = new ArrayList<Field>(fieldNames.size()); for (int i = 0; i < fieldNames.size(); i++) { DataType fieldType; if (version.getMajor() >= 3.0) { fieldType = DataTypeCqlNameParser.parse(fieldTypes.get(i), cluster, ksm.getName(), userTypes, ksm.userTypes, false, false); } else { fieldType = DataTypeClassNameParser.parseOne(fieldTypes.get(i), protocolVersion, codecRegistry); } fields.add(new Field(fieldNames.get(i), fieldType)); } return new UserType(keyspace, name, false, fields, protocolVersion, codecRegistry); }
static UserType build(KeyspaceMetadata ksm, Row row, VersionNumber version, Cluster cluster, Map<String, UserType> userTypes) { ProtocolVersion protocolVersion = cluster.getConfiguration().getProtocolOptions().getProtocolVersion(); CodecRegistry codecRegistry = cluster.getConfiguration().getCodecRegistry(); String keyspace = row.getString(KeyspaceMetadata.KS_NAME); String name = row.getString(TYPE_NAME); List<String> fieldNames = row.getList(COLS_NAMES, String.class); List<String> fieldTypes = row.getList(COLS_TYPES, String.class); List<Field> fields = new ArrayList<Field>(fieldNames.size()); for (int i = 0; i < fieldNames.size(); i++) { DataType fieldType; if (version.getMajor() >= 3.0) { fieldType = DataTypeCqlNameParser.parse(fieldTypes.get(i), cluster, ksm.getName(), userTypes, ksm.userTypes, false, false); } else { fieldType = DataTypeClassNameParser.parseOne(fieldTypes.get(i), protocolVersion, codecRegistry); } fields.add(new Field(fieldNames.get(i), fieldType)); } return new UserType(keyspace, name, fields, protocolVersion, codecRegistry); }
static UserType build(KeyspaceMetadata ksm, Row row, VersionNumber version, Cluster cluster, Map<String, UserType> userTypes) { ProtocolVersion protocolVersion = cluster.getConfiguration().getProtocolOptions().getProtocolVersion(); CodecRegistry codecRegistry = cluster.getConfiguration().getCodecRegistry(); String keyspace = row.getString(KeyspaceMetadata.KS_NAME); String name = row.getString(TYPE_NAME); List<String> fieldNames = row.getList(COLS_NAMES, String.class); List<String> fieldTypes = row.getList(COLS_TYPES, String.class); List<Field> fields = new ArrayList<Field>(fieldNames.size()); for (int i = 0; i < fieldNames.size(); i++) { DataType fieldType; if (version.getMajor() >= 3.0) { fieldType = DataTypeCqlNameParser.parse(fieldTypes.get(i), cluster, ksm.getName(), userTypes, ksm.userTypes, false, false); } else { fieldType = DataTypeClassNameParser.parseOne(fieldTypes.get(i), protocolVersion, codecRegistry); } fields.add(new Field(fieldNames.get(i), fieldType)); } return new UserType(keyspace, name, fields, protocolVersion, codecRegistry); }
"table", false, newArrayList(new Field("f1", varchar()), new Field("f2", varchar())), V3, new CodecRegistry()); "table", false, newArrayList(new Field("f1", text()), new Field("f2", varchar())), V3, new CodecRegistry()); "table", false, newArrayList(new Field("f1", varchar()), new Field("f2", text())), V3, new CodecRegistry()); "table", false, newArrayList(new Field("f1", text()), new Field("f2", text())), V3, new CodecRegistry());
"t", false, Arrays.asList(new UserType.Field("a", DataType.blob())), protocolVersion, codecRegistry); false, Arrays.asList( new UserType.Field("t", DataType.text()), new UserType.Field("i", DataType.cint()), new UserType.Field("L", DataType.list(DataType.text())), new UserType.Field("s", DataType.map(DataType.cint(), udt1))), protocolVersion, codecRegistry);
@Test(groups = "unit") public void should_deserialize_empty_buffer_as_udt_with_null_values() { CodecRegistry codecRegistry = new CodecRegistry(); UserType udt = new UserType( "ks", "t", false, Arrays.asList( new UserType.Field("t", DataType.text()), new UserType.Field("i", DataType.cint()), new UserType.Field("l", DataType.list(DataType.text()))), ProtocolVersion.NEWEST_SUPPORTED, codecRegistry); UDTValue expected = udt.newValue(); expected.setString("t", null); expected.setToNull("i"); expected.setList("l", null); UDTValue actual = codecRegistry .codecFor(udt, UDTValue.class) .deserialize(ByteBuffer.allocate(0), ProtocolVersion.NEWEST_SUPPORTED); assertThat(actual).isNotNull(); assertThat(actual).isEqualTo(expected); }