예제 #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);
 }
예제 #2
0
  public void testSupportSerializableDataType() throws Exception {
    SerializedObject value = new SerializedObject();
    value.value = 5;

    test = EntityPropertyTest.FACTORY.initInstance("test1");
    test.putIfAbsent();
    EntityPropertyImpl<EntityPropertyTest, SerializedObject> prop =
        new EntityPropertyImpl<EntityPropertyTest, SerializedObject>(
            test.getEntityBasePropertyAccess(),
            SerializedObject.class,
            "serializable",
            SerializableDataTypeTranslatorImpl.getInstance(SerializedObject.class),
            true);

    prop.set(value);
    test.put();
    prop =
        new EntityPropertyImpl<EntityPropertyTest, SerializedObject>(
            test.getEntityBasePropertyAccess(),
            SerializedObject.class,
            "serializable",
            SerializableDataTypeTranslatorImpl.getInstance(SerializedObject.class),
            true);

    assertEquals(value, SerializedObject.class.cast(prop.get()));
  }
예제 #3
0
 /**
  * 将旧的 serializedObject converter为 新的 serializedObject,如果expectedContentType 和旧的一致,那么直接返回 只是一个确认操作
  *
  * @param serializedObject The object to convert
  * @param expectedContentType The content type of the SerializedObject to return
  * @return a SerializedObject containing data in the expected content type
  */
 @SuppressWarnings("unchecked")
 protected <S, T> SerializedObject<T> ensureCorrectContentType(
     SerializedObject<S> serializedObject, Class<T> expectedContentType) {
   if (!expectedContentType.isAssignableFrom(serializedObject.getContentType())) {
     ContentTypeConverter<S, T> converter =
         converterFactory.getConverter(serializedObject.getContentType(), expectedContentType);
     return converter.convert(serializedObject);
   }
   return (SerializedObject<T>) serializedObject;
 }
예제 #4
0
 /**
  * Makes a copy of an object using serialization
  *
  * @param source the object to copy
  * @return a copy of the source object
  */
 protected Object copyObject(Object source) {
   Object result = null;
   try {
     SerializedObject so = new SerializedObject(source);
     result = so.getObject();
   } catch (Exception ex) {
     System.err.println("GenericObjectEditor: Problem making backup object");
     System.err.println(source.getClass().getName());
     ex.printStackTrace();
   }
   return result;
 }
 @SuppressWarnings("unchecked")
 @Override
 public <R> SerializedObject<R> serializeMetaData(
     Serializer serializer, Class<R> expectedRepresentation) {
   if (serializer.equals(serializedMetaData.getSerializer())) {
     final SerializedObject serializedObject = serializedMetaData.getSerializedObject();
     return CONVERTER_FACTORY
         .getConverter(serializedObject.getContentType(), expectedRepresentation)
         .convert(serializedObject);
   }
   return serializer.serialize(serializedMetaData.getObject(), expectedRepresentation);
 }
    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();
    }
예제 #7
0
 public void testSerialized() throws Exception {
   SerializedObject value = new SerializedObject();
   value.value = 5;
   checkPropertyType(SerializedObject.class, value);
 }
 @Override
 public SerializedObject<T> convert(SerializedObject<S> original) {
   return new SimpleSerializedObject<>(
       convert(original.getData()), targetType(), original.getType());
 }