2009-10-06 20 views
7

Tengo un objeto complejo que está siendo gestionado por la gestión de datos LCDS DataServices y se está creando/actualizando, etc. utilizando ensambladores personalizados. La gran mayoría de la jerarquía de objetos se está serializando/deserializando correctamente, pero he topado con un obstáculo cuando se trata de serializar clases de Java inmutables.Serialización de clases de java inmutables en actionscript con LCDS

En un java único mundo que yo usaría la writeReplace Java y métodos readResolve como este excelente blog describe: http://lingpipe-blog.com/2009/08/10/serializing-immutable-singletons-serialization-proxy/

Esto es como originalmente escribí mi clase java, esperando LiveCycle para llamar al método writeReplace y debidamente reemplazar el clase inmutable con una mutable para serialización. Sin embargo, parece que lcds no sabe nada del método writeReplace y solo llamará a readExternal/writeExternal ignorando readResolve y writeReplace.

En primer lugar, ¿otras personas han encontrado que este es el caso, o me falta algo?

En segundo lugar, ¿alguien ha encontrado un método apropiado para deserializar clases actionscript en objetos inmutables o singletons?

Muchas gracias

Respuesta

5

Sí, es un problema común. Adobe recomienda que el tipo de Java que tiene propiedades inmutables implementa Externalizable y el tipo equivalente de ActionScript implementa IExternalizable.

+0

Gracias Graeme. Llegué a la misma conclusión. Supongo que no conoce ningún plan para writeReplace y readResolve para ser manejado correctamente por LCDS en el futuro, ¿verdad? –

2

no hay un plan para manejar la writeReplace y readResolve, pero se puede pedir una solicitud de función http://bugs.adobe.com/jira/browse/BLZ

Cuando la implementación de su serialización personalizada cuidar que va a perder algunos beneficios como la compresión de los números y la identificación de las cadenas duplicadas. Una idea es echar un vistazo al mecanismo de serialización real y modificarlo en consecuencia.

Sin embargo, si usted está interesado sólo en la serialización de las propiedades de sólo leer esta mejora fue implementado en el BlazeDS, echar un vistazo aquí: http://bugs.adobe.com/jira/browse/BLZ-427

Cuestiones relacionadas