You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by st...@apache.org on 2016/04/03 19:01:28 UTC
[09/10] incubator-johnzon git commit: JOHNZON-71 swap mapper parts
out to MappingGenerator
JOHNZON-71 swap mapper parts out to MappingGenerator
Project: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/commit/f2a00fb1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/tree/f2a00fb1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/diff/f2a00fb1
Branch: refs/heads/master
Commit: f2a00fb11aeeb0ca6adf860d8a5dd8d4cbcb20a1
Parents: d88dfde
Author: Mark Struberg <st...@apache.org>
Authored: Sun Apr 3 18:26:56 2016 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Sun Apr 3 18:26:56 2016 +0200
----------------------------------------------------------------------
.../java/org/apache/johnzon/mapper/Mapper.java | 16 +++++++++++--
.../johnzon/mapper/MappingGeneratorImpl.java | 25 +++++++++++++-------
2 files changed, 31 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/f2a00fb1/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
----------------------------------------------------------------------
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
index 0a7b76d..aae3c34 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
@@ -311,13 +311,25 @@ public class Mapper implements Closeable {
}
return;
}
+
final JsonGenerator generator = generatorFactory.createGenerator(stream);
- doWriteHandlingNullObject(object, generator);
+ writeObject(object, generator);
}
public void writeObject(final Object object, final OutputStream stream) {
final JsonGenerator generator = generatorFactory.createGenerator(stream, config.getEncoding());
- doWriteHandlingNullObject(object, generator);
+ writeObject(object, generator);
+ }
+
+ private void writeObject(Object object, JsonGenerator generator) {
+ try {
+ MappingGenerator mappingGenerator = new MappingGeneratorImpl(config, generator, mappings);
+ generator.writeStartObject();
+ mappingGenerator.writeObject(object);
+ generator.writeEnd();
+ } finally {
+ doCloseOrFlush(generator);
+ }
}
public String writeArrayAsString(final Collection<?> instance) {
http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/f2a00fb1/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
index 3129572..d823be6 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
@@ -34,7 +34,7 @@ import org.apache.johnzon.mapper.internal.AdapterKey;
public class MappingGeneratorImpl implements MappingGenerator {
private final MapperConfig config;
private final JsonGenerator generator;
- protected final Mappings mappings;
+ private final Mappings mappings;
MappingGeneratorImpl(MapperConfig config, JsonGenerator jsonGenerator, final Mappings mappings) {
@@ -55,17 +55,22 @@ public class MappingGeneratorImpl implements MappingGenerator {
} else if (object instanceof JsonValue) {
generator.write((JsonValue) object);
} else {
- doWriteObject(object);
+ doWriteObject(object, false);
}
return this;
}
- private void doWriteObject(Object object) {
+ private void doWriteObject(Object object, boolean writeBody) {
try {
if (object instanceof Map) {
- generator.writeStartObject();
+ if (writeBody) {
+ generator.writeStartObject();
+ }
writeMapBody((Map<?, ?>) object, null);
- generator.writeEnd();
+ if (writeBody) {
+ generator.writeEnd();
+ }
+ return;
}
if(writePrimitives(object)) {
@@ -80,9 +85,13 @@ public class MappingGeneratorImpl implements MappingGenerator {
return;
}
- generator.writeStartObject();
+ if (writeBody) {
+ generator.writeStartObject();
+ }
doWriteObjectBody(object);
- generator.writeEnd();
+ if (writeBody) {
+ generator.writeEnd();
+ }
} catch (final InvocationTargetException e) {
throw new MapperException(e);
} catch (final IllegalAccessException e) {
@@ -319,7 +328,7 @@ public class MappingGeneratorImpl implements MappingGenerator {
} else if (o == null) {
generator.writeNull();
} else {
- doWriteObject(o);
+ doWriteObject(o, true);
}
}
}