ainlolcat

xStream patch

Jul 3rd, 2014
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1. Index: ../../../3rd/src/xstream_1.4.7/xstream/src/java/com/thoughtworks/xstream/converters/reflection/SerializableConverter.java
  2. IDEA additional info:
  3. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4. <+>UTF-8
  5. ===================================================================
  6. --- ../../../3rd/src/xstream_1.4.7/xstream/src/java/com/thoughtworks/xstream/converters/reflection/SerializableConverter.java   (revision 2292)
  7. +++ ../../../3rd/src/xstream_1.4.7/xstream/src/java/com/thoughtworks/xstream/converters/reflection/SerializableConverter.java   (revision )
  8. @@ -119,6 +119,25 @@
  9.          return false;
  10.      }
  11.  
  12. +    private static class FieldWrapper{
  13. +        private Object value;
  14. +
  15. +        public FieldWrapper(Object value)
  16. +        {
  17. +            this.value = value;
  18. +        }
  19. +
  20. +        public Object getValue()
  21. +        {
  22. +            return value;
  23. +        }
  24. +
  25. +        public void setValue(Object value)
  26. +        {
  27. +            this.value = value;
  28. +        }
  29. +    }
  30. +
  31.      public void doMarshal(final Object source, final HierarchicalStreamWriter writer, final MarshallingContext context) {
  32.          String attributeName = mapper.aliasForSystemAttribute(ATTRIBUTE_SERIALIZATION);
  33.          if (attributeName != null) {
  34. @@ -132,15 +151,10 @@
  35.          CustomObjectOutputStream.StreamCallback callback = new CustomObjectOutputStream.StreamCallback() {
  36.  
  37.              public void writeToStream(Object object) {
  38. -                if (object == null) {
  39. -                    writer.startNode(ELEMENT_NULL);
  40. +                ExtendedHierarchicalStreamWriterHelper.startNode(writer, mapper.serializedClass(FieldWrapper.class), FieldWrapper.class);
  41. +                context.convertAnother(new FieldWrapper(object));
  42. -                    writer.endNode();
  43. +                writer.endNode();
  44. -                } else {
  45. -                    ExtendedHierarchicalStreamWriterHelper.startNode(writer, mapper.serializedClass(object.getClass()), object.getClass());
  46. -                    context.convertAnother(object);
  47. -                    writer.endNode();
  48. -                }
  49. +            }
  50. -            }
  51.  
  52.              public void writeFieldsToStream(Map fields) {
  53.                  ObjectStreamClass objectStreamClass = ObjectStreamClass.lookup(currentType[0]);
  54. @@ -338,6 +352,8 @@
  55.                  reader.moveDown();
  56.                  Class type = HierarchicalStreams.readClassType(reader, mapper);
  57.                  Object value = context.convertAnother(result, type);
  58. +                if (value instanceof FieldWrapper)
  59. +                    value = ((FieldWrapper) value).value;
  60.                  reader.moveUp();
  61.                  return value;
  62.              }
Add Comment
Please, Sign In to add comment