示例#1
0
 @SuppressWarnings({"unchecked", "rawtypes"})
 private List<SerializedObject> upcastInternal(
     List<SerializedObject> serializedObjects,
     Iterator<Upcaster<?>> upcasterIterator,
     UpcastingContext context) {
   if (!upcasterIterator.hasNext()) {
     return serializedObjects;
   }
   List<SerializedObject> upcastObjects = new ArrayList<>();
   Upcaster<?> currentUpcaster = upcasterIterator.next();
   for (SerializedObject serializedObject : serializedObjects) {
     if (currentUpcaster.canUpcast(serializedObject.getType())) {
       List<SerializedType> upcastTypes;
       if (currentUpcaster instanceof ExtendedUpcaster) {
         upcastTypes =
             ((ExtendedUpcaster) currentUpcaster)
                 .upcast(serializedObject.getType(), serializedObject);
       } else {
         upcastTypes = currentUpcaster.upcast(serializedObject.getType());
       }
       upcastObjects.addAll(doUpcast(currentUpcaster, serializedObject, upcastTypes, context));
     } else {
       upcastObjects.add(serializedObject);
     }
   }
   return upcastInternal(upcastObjects, upcasterIterator, context);
 }
    private EventEntry(Serializer serializer, DomainEventMessage event) {
      this.eventIdentifier = event.getIdentifier();
      Class<?> serializationTarget = String.class;
      if (serializer.canSerializeTo(DBObject.class)) {
        serializationTarget = DBObject.class;
      }
      SerializedObject serializedPayloadObject =
          serializePayload(event, serializer, serializationTarget);
      SerializedObject serializedMetaDataObject =
          serializeMetaData(event, serializer, serializationTarget);

      this.serializedPayload = serializedPayloadObject.getData();
      this.payloadType = serializedPayloadObject.getType().getName();
      this.payloadRevision = serializedPayloadObject.getType().getRevision();
      this.serializedMetaData = serializedMetaDataObject.getData();
      this.sequenceNumber = event.getSequenceNumber();
      this.timestamp = event.getTimestamp().toEpochMilli();
    }
 @Override
 public SerializedObject<T> convert(SerializedObject<S> original) {
   return new SimpleSerializedObject<>(
       convert(original.getData()), targetType(), original.getType());
 }