@Override public Class classForType(SerializedType type) { if (SerializedType.emptyType().equals(type)) { return Void.class; } try { return Class.forName(type.getName()); } catch (ClassNotFoundException e) { return UnknownSerializedType.class; } }
@Override public Class classForType(SerializedType type) { if (SerializedType.emptyType().equals(type)) { return Void.class; } try { return xStream.getMapper().realClass(type.getName()); } catch (CannotResolveClassException e) { return UnknownSerializedType.class; } }
@SuppressWarnings("unchecked") @Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } if (UnknownSerializedType.class.isAssignableFrom(classForType(serializedObject.getType()))) { return (T) new UnknownSerializedType(this, serializedObject); } return (T) doDeserialize(serializedObject, xStream); }
@SuppressWarnings("unchecked") @Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } if (UnknownSerializedType.class.isAssignableFrom(classForType(serializedObject.getType()))) { return (T) new UnknownSerializedType(this, serializedObject); } SerializedObject<InputStream> converted = converter.convert(serializedObject, InputStream.class); ObjectInputStream ois = null; try { ois = new ObjectInputStream(converted.getData()); return (T) ois.readObject(); } catch (ClassNotFoundException | IOException e) { throw new SerializationException("An error occurred while deserializing: " + e.getMessage(), e); } finally { IOUtils.closeQuietly(ois); } }
@Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { try { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } Class<?> type = classForType(serializedObject.getType()); if (UnknownSerializedType.class.isAssignableFrom(type)) { return (T) new UnknownSerializedType(this, serializedObject); } if (JsonNode.class.equals(serializedObject.getContentType())) { return getReader(type) .readValue((JsonNode) serializedObject.getData()); } SerializedObject<byte[]> byteSerialized = converter.convert(serializedObject, byte[].class); return getReader(type).readValue(byteSerialized.getData()); } catch (IOException e) { throw new SerializationException("Error while deserializing object", e); } }
@Override public Class classForType(SerializedType type) { if (SerializedType.emptyType().equals(type)) { return Void.class; } try { return Class.forName(type.getName()); } catch (ClassNotFoundException e) { return UnknownSerializedType.class; } }
@Override public Class classForType(SerializedType type) { if (SerializedType.emptyType().equals(type)) { return Void.class; } try { return Class.forName(type.getName()); } catch (ClassNotFoundException e) { throw new UnknownSerializedTypeException(type, e); } }
@SuppressWarnings("unchecked") @Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } return (T) doDeserialize(serializedObject, xStream); }
@Override public Class classForType(SerializedType type) { if (SerializedType.emptyType().equals(type)) { return Void.class; } try { return xStream.getMapper().realClass(type.getName()); } catch (CannotResolveClassException e) { return UnknownSerializedType.class; } }
private static Stream<IntermediateEventRepresentation> upcastAndDeserialize( Stream<? extends EventData<?>> eventEntryStream, Serializer serializer, EventUpcaster upcasterChain, boolean skipUnknownTypes, Function<EventData<?>, IntermediateEventRepresentation> entryConverter) { Stream<IntermediateEventRepresentation> upcastResult = upcasterChain.upcast(eventEntryStream.map(entryConverter)); if (skipUnknownTypes) { upcastResult = upcastResult.map(ir -> { try { serializer.classForType(ir.getType()); return ir; } catch (UnknownSerializedTypeException e) { return ir.upcast(SerializedType.emptyType(), byte[].class, u -> EMPTY_BYTES, Function.identity()); } }); } return upcastResult; } }
@Override public Class classForType(SerializedType type) { if (SerializedType.emptyType().equals(type)) { return Void.class; } try { return xStream.getMapper().realClass(type.getName()); } catch (CannotResolveClassException e) { throw new UnknownSerializedTypeException(type, e); } }
@SuppressWarnings("unchecked") @Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } if (UnknownSerializedType.class.isAssignableFrom(classForType(serializedObject.getType()))) { return (T) new UnknownSerializedType(this, serializedObject); } return (T) doDeserialize(serializedObject, xStream); }
@SuppressWarnings("unchecked") @Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } SerializedObject<InputStream> converted = converter.convert(serializedObject, InputStream.class); ObjectInputStream ois = null; try { ois = new ObjectInputStream(converted.getData()); return (T) ois.readObject(); } catch (ClassNotFoundException | IOException e) { throw new SerializationException("An error occurred while deserializing: " + e.getMessage(), e); } finally { IOUtils.closeQuietly(ois); } }
@SuppressWarnings("unchecked") @Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } if (UnknownSerializedType.class.isAssignableFrom(classForType(serializedObject.getType()))) { return (T) new UnknownSerializedType(this, serializedObject); } SerializedObject<InputStream> converted = converter.convert(serializedObject, InputStream.class); ObjectInputStream ois = null; try { ois = new ObjectInputStream(converted.getData()); return (T) ois.readObject(); } catch (ClassNotFoundException | IOException e) { throw new SerializationException("An error occurred while deserializing: " + e.getMessage(), e); } finally { IOUtils.closeQuietly(ois); } }
@Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { try { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } Class<?> type = classForType(serializedObject.getType()); if (UnknownSerializedType.class.isAssignableFrom(type)) { return (T) new UnknownSerializedType(this, serializedObject); } if (JsonNode.class.equals(serializedObject.getContentType())) { return getReader(type) .readValue((JsonNode) serializedObject.getData()); } SerializedObject<byte[]> byteSerialized = converter.convert(serializedObject, byte[].class); return getReader(type).readValue(byteSerialized.getData()); } catch (IOException e) { throw new SerializationException("Error while deserializing object", e); } }
@Override public <S, T> T deserialize(SerializedObject<S> serializedObject) { if (SerializedType.emptyType().equals(serializedObject.getType())) { return null; } try { if (JsonNode.class.equals(serializedObject.getContentType())) { return getReader(classForType(serializedObject.getType())) .readValue((JsonNode) serializedObject.getData()); } SerializedObject<byte[]> byteSerialized = converter.convert(serializedObject, byte[].class); return getReader(classForType(serializedObject.getType())).readValue(byteSerialized.getData()); } catch (IOException e) { throw new SerializationException("Error while deserializing object", e); } }