Repository: commons-rdf
Updated Branches:
  refs/heads/fluent-parser f9613b90a -> 996e40a29


Custom serialization of ImmutableWriterConfigImpl


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/f68f53d6
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/f68f53d6
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/f68f53d6

Branch: refs/heads/fluent-parser
Commit: f68f53d69a0e71b638aa0d5451e47ac73eacf62a
Parents: f9613b9
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Feb 20 11:25:59 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Feb 20 11:25:59 2018 +0000

----------------------------------------------------------------------
 .../rdf/api/io/ImmutableWriterConfigImpl.java     | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/f68f53d6/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/io/ImmutableWriterConfigImpl.java
----------------------------------------------------------------------
diff --git 
a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/io/ImmutableWriterConfigImpl.java
 
b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/io/ImmutableWriterConfigImpl.java
index 4c238d9..2b5e5e1 100644
--- 
a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/io/ImmutableWriterConfigImpl.java
+++ 
b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/io/ImmutableWriterConfigImpl.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.rdf.api.io;
 
+import java.io.ObjectStreamException;
 import java.io.Serializable;
 import java.util.Collections;
 import java.util.HashMap;
@@ -23,7 +24,6 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ExecutorService;
 
-import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.io.WriterConfig.ImmutableWriterConfig;
@@ -86,6 +86,20 @@ class ImmutableWriterConfigImpl implements 
ImmutableWriterConfig, Serializable {
        static class WithParent extends ImmutableWriterConfigImpl implements 
ImmutableWriterConfig {
                private final ImmutableWriterConfig parent;
 
+               /**
+                * Override which object to use by Serializable, avoiding
+                * serialization of the whole WithParent tree. 
+                * 
+                * This method is protected so it will be invoked for all 
subclasses of
+                * WithParent.
+                * 
+                * @return a {@link SnapshotWriterConfig}
+                * @throws ObjectStreamException
+                */
+               protected Object writeReplace() throws ObjectStreamException {
+                       return new SnapshotWriterConfig(this);
+               }               
+               
                WithParent(ImmutableWriterConfig parent) {
                        this.parent = parent;
                }
@@ -110,6 +124,7 @@ class ImmutableWriterConfigImpl implements 
ImmutableWriterConfig, Serializable {
                        return parent.rdf();
                }
 
+               @SuppressWarnings("rawtypes")
                @Override
                public Map<Option, Object> options() {
                        return parent.options();
@@ -172,6 +187,7 @@ class ImmutableWriterConfigImpl implements 
ImmutableWriterConfig, Serializable {
 
        }       
 
+       @SuppressWarnings("rawtypes")
        static class WithOption extends WithParent implements WriterConfig {
                private Option o;
                private Object v;

Reply via email to