/** * @param obj BinaryObject array. * @return Deserialized enums. */ private TestEnum[] deserializeEnumBinaryArray(Object obj) { Object[] arr = (Object[])obj; final TestEnum[] res = new TestEnum[arr.length]; for (int i = 0; i < arr.length; i++) res[i] = ((BinaryObject)arr[i]).deserialize(); return res; }
/** Read Ignite binary object from input stream. */ <T> T readObject(BinaryInputStream in, boolean keepBinary) { Object val = marsh.unmarshal(in); if (val instanceof BinaryObject && !keepBinary) val = ((BinaryObject)val).deserialize(); return (T)val; }
/** * Convert the given key from binary form, if necessary. * * @param key the key to convert if necessary * @return the key */ private static IntegerKey ensureKey(Object key) { Object converted = key instanceof BinaryObject ? ((BinaryObject) key).deserialize() : key; return converted instanceof IntegerKey ? (IntegerKey) converted : null; }
/** * @param obj Object being deserialized. * @param <T> Result type. * @return Deserialized value, if {@link BinaryObject} was provided, or the same object otherwise. */ private <T> T deserialize(Object obj) { if (obj instanceof BinaryObject) return ((BinaryObject)obj).deserialize(); else return (T)obj; }
/** * @param obj Binary object. * @return Deserialize value. */ private Object checkAndGetObject(@Nullable Object obj) { if (obj != null) { assert obj instanceof BinaryObject || dataMode == EXTERNALIZABLE: obj; if (obj instanceof BinaryObject) obj = ((BinaryObject)obj).deserialize(); } return obj; }
/** {@inheritDoc} */ @Override public void store(@Nullable String cacheName, Object key, Object val, long expirationTime) throws IgniteSpiException { assertTrue(key instanceof BinaryObject); assertTrue(val instanceof BinaryObject); super.store(cacheName, ((BinaryObject)key).deserialize(), ((BinaryObject)val).deserialize(), expirationTime); }
/** * @param val Value * @return User object. */ private static Object deserializeBinary(Object val) { assertTrue("Val: " + val, val instanceof BinaryObject); return ((BinaryObject)val).deserialize(); }
/** * */ @Test public void testArrayListClear() { GridBinaryTestClasses.TestObjectContainer obj = new GridBinaryTestClasses.TestObjectContainer(); obj.foo = Lists.newArrayList("a", "b", "c"); BinaryObjectBuilderImpl mutObj = wrap(obj); List<String> list = mutObj.getField("foo"); list.clear(); Assert.assertEquals(Collections.emptyList(), mutObj.build().<GridBinaryTestClasses.TestObjectContainer>deserialize().foo); }
/** * */ @Test public void testMapOverride() { GridBinaryTestClasses.TestObjectContainer obj = new GridBinaryTestClasses.TestObjectContainer(); BinaryObjectBuilderImpl mutObj = wrap(obj); Map<Object, Object> map = Maps.newHashMap(ImmutableMap.of(mutObj, "a", "b", mutObj)); mutObj.setField("foo", map, Object.class); GridBinaryTestClasses.TestObjectContainer res = mutObj.build().deserialize(); assertEquals(ImmutableMap.of(res, "a", "b", res), res.foo); }
/** * */ @Test public void testOverrideObjectArrayField() { BinaryObjectBuilderImpl mutObj = wrap(new GridBinaryTestClasses.TestObjectContainer()); Object[] createdArr = {mutObj, "a", 1, new String[] {"s", "s"}, new byte[] {1, 2}, new UUID(3, 0)}; mutObj.setField("foo", createdArr.clone(), Object.class); GridBinaryTestClasses.TestObjectContainer res = mutObj.build().deserialize(); createdArr[0] = res; assertTrue(Objects.deepEquals(createdArr, res.foo)); }
/** * @throws Exception If failed. */ @Test public void testSingleHandle() throws Exception { SingleHandleA a = new SingleHandleA(new SingleHandleB()); BinaryObjectImpl bo = marshal(a, binaryMarshaller()); Map<String, BinaryObject> map = bo.field("map"); BinaryObject innerBo = map.get("key"); assertEquals(SingleHandleB.class, innerBo.deserialize().getClass()); }
/** * @throws Exception If failed. */ @Test public void testBuildAndDeserialize() throws Exception { BinaryObjectBuilder builder = builder(Value.class.getName()); builder.setField("i", 1); BinaryObject bo = builder.build(); assertEquals(expectedHashCode(Value.class.getName()), bo.type().typeId()); assertEquals(BinaryArrayIdentityResolver.instance().hashCode(bo), bo.hashCode()); assertEquals(1, bo.<Value>deserialize().i); }
/** * */ @Test public void testSimpleTypeFieldSerialize() { GridBinaryTestClasses.TestObjectAllTypes exp = new GridBinaryTestClasses.TestObjectAllTypes(); exp.setDefaultData(); BinaryObjectBuilderImpl mutPo = wrap(exp); GridBinaryTestClasses.TestObjectAllTypes res = mutPo.build().deserialize(); GridTestUtils.deepEquals(exp, res); }
/** * */ @Test public void testRemoveFromNewObject() { BinaryObjectBuilderImpl wrapper = newWrapper(GridBinaryTestClasses.TestObjectAllTypes.class); wrapper.setField("str", "a"); wrapper.removeField("str"); Assert.assertNull(wrapper.build().<GridBinaryTestClasses.TestObjectAllTypes>deserialize().str); }
/** * */ @Test public void testAllFieldsSerialization() { GridBinaryTestClasses.TestObjectAllTypes obj = new GridBinaryTestClasses.TestObjectAllTypes(); obj.setDefaultData(); obj.enumArr = null; GridBinaryTestClasses.TestObjectAllTypes deserialized = builder(toBinary(obj)).build().deserialize(); GridTestUtils.deepEquals(obj, deserialized); }
/** * */ @Test public void testMapEntryOverride() { GridBinaryTestClasses.TestObjectContainer obj = new GridBinaryTestClasses.TestObjectContainer(); BinaryObjectBuilderImpl mutableObj = wrap(obj); mutableObj.setField("foo", new GridMapEntry<>(1, "a")); GridBinaryTestClasses.TestObjectContainer res = mutableObj.build().deserialize(); assertEquals(new GridMapEntry<>(1, "a"), res.foo); }
/** * */ @Test public void testAssignBinaryObject() { GridBinaryTestClasses.TestObjectContainer container = new GridBinaryTestClasses.TestObjectContainer(); BinaryObjectBuilderImpl wrapper = wrap(container); wrapper.setField("foo", toBinary(new GridBinaryTestClasses.TestObjectArrayList())); GridBinaryTestClasses.TestObjectContainer deserialized = wrapper.build().deserialize(); assertTrue(deserialized.foo instanceof GridBinaryTestClasses.TestObjectArrayList); }
/** * */ @Test public void testRemoveFromExistingObject() { GridBinaryTestClasses.TestObjectAllTypes obj = new GridBinaryTestClasses.TestObjectAllTypes(); obj.setDefaultData(); BinaryObjectBuilderImpl wrapper = wrap(toBinary(obj)); wrapper.removeField("str"); Assert.assertNull(wrapper.build().<GridBinaryTestClasses.TestObjectAllTypes>deserialize().str); }
/** * @throws Exception If failed. */ @Test public void testObjectField() throws Exception { BinaryObjectBuilder builder = builder("Class"); builder.setField("objectField", new Value(1)); BinaryObject po = builder.build(); assertEquals(expectedHashCode("Class"), po.type().typeId()); assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode()); assertEquals(1, po.<BinaryObject>field("objectField").<Value>deserialize().i); }
/** * */ @Test public void testBinaryObjectField() { GridBinaryTestClasses.TestObjectContainer container = new GridBinaryTestClasses.TestObjectContainer(toBinary(new GridBinaryTestClasses.TestObjectArrayList())); BinaryObjectBuilderImpl wrapper = wrap(container); assertTrue(wrapper.getField("foo") instanceof BinaryObject); GridBinaryTestClasses.TestObjectContainer deserialized = wrapper.build().deserialize(); assertTrue(deserialized.foo instanceof BinaryObject); }