/** {@inheritDoc} */ @Override public String fieldTypeName(String fieldName) { return target().fieldTypeName(fieldName); }
/** * Default constructor. */ public VisorBinaryMetadata(IgniteBinary binary, BinaryType binaryType) { typeName = binaryType.typeName(); typeId = binary.typeId(typeName); affinityKeyFieldName = binaryType.affinityKeyFieldName(); Collection<String> binaryTypeFields = binaryType.fieldNames(); fields = new ArrayList<>(binaryTypeFields.size()); for (String metaField : binaryTypeFields) fields.add(new VisorBinaryMetadataField(metaField, binaryType.fieldTypeName(metaField), null)); }
String oldFldTypeName = meta == null ? null : meta.fieldTypeName(name);
final String OBJ = "Object"; assert COL.equals(binaryObj.type().fieldTypeName("arrayList")); assert COL.equals(binaryObj.type().fieldTypeName("linkedList")); assert COL.equals(binaryObj.type().fieldTypeName("hashSet")); assert COL.equals(binaryObj.type().fieldTypeName("linkedHashSet")); assert COL.equals(binaryObj.type().fieldTypeName("linkedHashSet")); assert COL.equals(binaryObj.type().fieldTypeName("linkedHashSet")); assert COL.equals(binaryObj.type().fieldTypeName("singletonList")); assert COL.equals(binaryObj.type().fieldTypeName("singletonSet")); assert MAP.equals(binaryObj.type().fieldTypeName("singletonMap")); assert COL.equals(binaryObj.type().fieldTypeName("asList")); assert OBJ.equals(binaryObj.type().fieldTypeName("asSet")); assert OBJ.equals(binaryObj.type().fieldTypeName("asMap")); assert OBJ.equals(binaryObj.type().fieldTypeName("asListHint")); assert OBJ.equals(binaryObj.type().fieldTypeName("asSetHint")); assert OBJ.equals(binaryObj.type().fieldTypeName("asMapHint"));
/** * @throws Exception If failed. */ @Test public void testReflection() throws Exception { BinaryType meta = binaries().type(TestObject1.class); assertNotNull(meta); assertEquals(expectedTypeName(TestObject1.class.getName()), meta.typeName()); Collection<String> fields = meta.fieldNames(); assertEquals(7, fields.size()); assertTrue(fields.contains("intVal")); assertTrue(fields.contains("strVal")); assertTrue(fields.contains("arrVal")); assertTrue(fields.contains("obj1Val")); assertTrue(fields.contains("obj2Val")); assertTrue(fields.contains("decVal")); assertTrue(fields.contains("decArrVal")); assertEquals("int", meta.fieldTypeName("intVal")); assertEquals("String", meta.fieldTypeName("strVal")); assertEquals("byte[]", meta.fieldTypeName("arrVal")); assertEquals("Object", meta.fieldTypeName("obj1Val")); assertEquals("Object", meta.fieldTypeName("obj2Val")); assertEquals("decimal", meta.fieldTypeName("decVal")); assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); }
/** * */ @Test public void testMetadataChanging() { GridBinaryTestClasses.TestObjectContainer c = new GridBinaryTestClasses.TestObjectContainer(); BinaryObjectBuilderImpl mutableObj = wrap(c); mutableObj.setField("intField", 1); mutableObj.setField("intArrField", new int[] {1}); mutableObj.setField("arrField", new String[] {"1"}); mutableObj.setField("strField", "1"); mutableObj.setField("colField", Lists.newArrayList("1")); mutableObj.setField("mapField", Maps.newHashMap(ImmutableMap.of(1, "1"))); mutableObj.setField("enumField", GridBinaryTestClasses.TestObjectEnum.A); mutableObj.setField("enumArrField", new Enum[] {GridBinaryTestClasses.TestObjectEnum.A}); mutableObj.build(); BinaryType metadata = binaries().type(c.getClass()); assertTrue(metadata.fieldNames().containsAll(Arrays.asList("intField", "intArrField", "arrField", "strField", "colField", "mapField", "enumField", "enumArrField"))); assertEquals("int", metadata.fieldTypeName("intField")); assertEquals("int[]", metadata.fieldTypeName("intArrField")); assertEquals("String[]", metadata.fieldTypeName("arrField")); assertEquals("String", metadata.fieldTypeName("strField")); assertEquals("Collection", metadata.fieldTypeName("colField")); assertEquals("Map", metadata.fieldTypeName("mapField")); assertEquals("Enum", metadata.fieldTypeName("enumField")); assertEquals("Enum[]", metadata.fieldTypeName("enumArrField")); }
/** * @throws Exception If failed. */ @Test public void testBinaryMarshalAware() throws Exception { binaries().toBinary(new TestObject2()); BinaryType meta = binaries().type(TestObject2.class); assertNotNull(meta); assertEquals(expectedTypeName(TestObject2.class.getName()), meta.typeName()); Collection<String> fields = meta.fieldNames(); assertEquals(7, fields.size()); assertTrue(fields.contains("boolVal")); assertTrue(fields.contains("dateVal")); assertTrue(fields.contains("uuidArrVal")); assertTrue(fields.contains("objVal")); assertTrue(fields.contains("mapVal")); assertTrue(fields.contains("decVal")); assertTrue(fields.contains("decArrVal")); assertEquals("boolean", meta.fieldTypeName("boolVal")); assertEquals("Date", meta.fieldTypeName("dateVal")); assertEquals("UUID[]", meta.fieldTypeName("uuidArrVal")); assertEquals("Object", meta.fieldTypeName("objVal")); assertEquals("Map", meta.fieldTypeName("mapVal")); assertEquals("decimal", meta.fieldTypeName("decVal")); assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); }
assertTrue(fields.contains("decArrVal")); assertEquals("boolean", meta.fieldTypeName("boolVal")); assertEquals("Date", meta.fieldTypeName("dateVal")); assertEquals("UUID[]", meta.fieldTypeName("uuidArrVal")); assertEquals("Object", meta.fieldTypeName("objVal")); assertEquals("Map", meta.fieldTypeName("mapVal")); assertEquals("char", meta.fieldTypeName("charVal")); assertEquals("Collection", meta.fieldTypeName("colVal")); assertEquals("decimal", meta.fieldTypeName("decVal")); assertEquals("decimal[]", meta.fieldTypeName("decArrVal"));
assertTrue(fields.contains("decArrVal")); assertEquals("int", meta.fieldTypeName("intVal")); assertEquals("String", meta.fieldTypeName("strVal")); assertEquals("byte[]", meta.fieldTypeName("arrVal")); assertEquals("Object", meta.fieldTypeName("obj1Val")); assertEquals("Object", meta.fieldTypeName("obj2Val")); assertEquals("decimal", meta.fieldTypeName("decVal")); assertEquals("decimal[]", meta.fieldTypeName("decArrVal"));
assertTrue(fields.contains("decArrVal")); assertEquals("int", meta.fieldTypeName("intVal")); assertEquals("String", meta.fieldTypeName("strVal")); assertEquals("byte[]", meta.fieldTypeName("arrVal")); assertEquals("Object", meta.fieldTypeName("obj1Val")); assertEquals("Object", meta.fieldTypeName("obj2Val")); assertEquals("decimal", meta.fieldTypeName("decVal")); assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); assertTrue(fields.contains("decArrVal")); assertEquals("boolean", meta.fieldTypeName("boolVal")); assertEquals("Date", meta.fieldTypeName("dateVal")); assertEquals("UUID[]", meta.fieldTypeName("uuidArrVal")); assertEquals("Object", meta.fieldTypeName("objVal")); assertEquals("Map", meta.fieldTypeName("mapVal")); assertEquals("decimal", meta.fieldTypeName("decVal")); assertEquals("decimal[]", meta.fieldTypeName("decArrVal"));
/** {@inheritDoc} */ @Nullable @Override public Object execute() { BinaryObjectEx arg0 = ((BinaryObjectEx)arg); BinaryType meta = ignite.binary().type(arg0.typeId()); if (meta == null) throw new IgniteException("Metadata doesn't exist."); if (meta.fieldNames() == null || !meta.fieldNames().contains("Field")) throw new IgniteException("Field metadata doesn't exist."); if (!F.eq("int", meta.fieldTypeName("Field"))) throw new IgniteException("Invalid field type: " + meta.fieldTypeName("Field")); if (meta.affinityKeyFieldName() != null) throw new IgniteException("Unexpected affinity key: " + meta.affinityKeyFieldName()); return arg0.field("field"); }
/** */ private void assertBinaryTypesEqual(BinaryType exp, BinaryType actual) { assertEquals(exp.typeId(), actual.typeId()); assertEquals(exp.typeName(), actual.typeName()); assertArrayEquals(exp.fieldNames().toArray(), actual.fieldNames().toArray()); for (String f : exp.fieldNames()) assertEquals(exp.fieldTypeName(f), actual.fieldTypeName(f)); assertEquals(exp.affinityKeyFieldName(), actual.affinityKeyFieldName()); assertEquals(exp.isEnum(), actual.isEnum()); }
assertTrue(fields.contains("byteArrayField")); assertEquals("int", meta.fieldTypeName("intField")); assertEquals("byte[]", meta.fieldTypeName("byteArrayField")); assertTrue(fields.contains("uuidField")); assertEquals("int", meta.fieldTypeName("intField")); assertEquals("byte[]", meta.fieldTypeName("byteArrayField")); assertEquals("UUID", meta.fieldTypeName("uuidField"));
/** */ private void assertBinaryTypesEqual(BinaryType exp, BinaryType actual) { assertEquals(exp.typeId(), actual.typeId()); assertEquals(exp.typeName(), actual.typeName()); assertEquals(exp.fieldNames(), actual.fieldNames()); for (String f : exp.fieldNames()) assertEquals(exp.fieldTypeName(f), actual.fieldTypeName(f)); assertEquals(exp.affinityKeyFieldName(), actual.affinityKeyFieldName()); assertEquals(exp.isEnum(), actual.isEnum()); }
/** * @throws Exception If failed. */ @Test public void testMetaData2() throws Exception { BinaryObjectBuilder builder = builder("org.test.MetaTest2"); builder.setField("objectField", "a", Object.class); BinaryObject bo = builder.build(); BinaryType meta = bo.type(); assertEquals(expectedTypeName("org.test.MetaTest2"), meta.typeName()); assertEquals("Object", meta.fieldTypeName("objectField")); }
/** * */ @Test public void testMetadataChangingDoublePut2() { BinaryObjectBuilderImpl mutableObj = wrap(new GridBinaryTestClasses.TestObjectContainer()); mutableObj.setField("xx567", "a"); mutableObj.setField("xx567", "b"); mutableObj.build(); BinaryType metadata = binaries().type(GridBinaryTestClasses.TestObjectContainer.class); assertEquals("String", metadata.fieldTypeName("xx567")); }
/** * */ @Test public void testMetadataChangingDoublePut() { BinaryObjectBuilderImpl mutableObj = wrap(new GridBinaryTestClasses.TestObjectContainer()); mutableObj.setField("xx567", "a"); mutableObj.setField("xx567", "b"); mutableObj.build(); BinaryType metadata = binaries().type(GridBinaryTestClasses.TestObjectContainer.class); assertEquals("String", metadata.fieldTypeName("xx567")); }
/** {@inheritDoc} */ @Override public String fieldTypeName(String fieldName) { return target().fieldTypeName(fieldName); }
/** * Default constructor. */ public VisorBinaryMetadata(IgniteBinary binary, BinaryType binaryType) { typeName = binaryType.typeName(); typeId = binary.typeId(typeName); affinityKeyFieldName = binaryType.affinityKeyFieldName(); Collection<String> binaryTypeFields = binaryType.fieldNames(); fields = new ArrayList<>(binaryTypeFields.size()); for (String metaField : binaryTypeFields) fields.add(new VisorBinaryMetadataField(metaField, binaryType.fieldTypeName(metaField), null)); }
String oldFldTypeName = meta == null ? null : meta.fieldTypeName(name);