You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/04/04 07:26:29 UTC
[25/51] [abbrv] git commit: [OLINGO-200] Cleanup again
[OLINGO-200] Cleanup again
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/1fa66760
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/1fa66760
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/1fa66760
Branch: refs/heads/olingo-206-validator
Commit: 1fa667608094fb7a59395642b641113959b48798
Parents: a5b7b25
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Apr 1 14:16:50 2014 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Apr 1 14:16:50 2014 +0200
----------------------------------------------------------------------
.../commons/core/data/AtomDeserializer.java | 28 +++++++--------
.../core/op/AbstractODataDeserializer.java | 38 ++++++++------------
2 files changed, 26 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/1fa66760/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
index a786803..722ea50 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
@@ -34,14 +34,10 @@ import org.apache.olingo.commons.api.domain.ODataOperation;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
import org.apache.olingo.commons.api.format.ContentType;
import org.apache.olingo.commons.core.data.v3.XMLLinkCollectionImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class AtomDeserializer extends AbstractAtomDealer {
- private static final Logger LOG = LoggerFactory.getLogger(AtomDeserializer.class);
-
- public static final XMLInputFactory FACTORY = XMLInputFactory.newInstance();
+ private static final XMLInputFactory FACTORY = XMLInputFactory.newInstance();
private final AtomPropertyDeserializer propDeserializer;
@@ -56,7 +52,7 @@ public class AtomDeserializer extends AbstractAtomDealer {
return getContainer(start, propDeserializer.deserialize(reader, start));
}
- public StartElement skipBeforeFirstStartElement(final XMLEventReader reader) throws XMLStreamException {
+ private StartElement skipBeforeFirstStartElement(final XMLEventReader reader) throws XMLStreamException {
StartElement startEvent = null;
while (reader.hasNext() && startEvent == null) {
final XMLEvent event = reader.nextEvent();
@@ -442,6 +438,16 @@ public class AtomDeserializer extends AbstractAtomDealer {
return getContainer(start, error(reader, start));
}
+ private <T> Container<T> getContainer(final StartElement start, final T object) {
+ final Attribute context = start.getAttributeByName(contextQName);
+ final Attribute metadataETag = start.getAttributeByName(metadataEtagQName);
+
+ return new Container<T>(
+ context == null ? null : URI.create(context.getValue()),
+ metadataETag == null ? null : metadataETag.getValue(),
+ object);
+ }
+
@SuppressWarnings("unchecked")
public <T, V extends T> Container<T> read(final InputStream input, final Class<V> reference)
throws XMLStreamException {
@@ -459,14 +465,4 @@ public class AtomDeserializer extends AbstractAtomDealer {
}
return null;
}
-
- public <T> Container<T> getContainer(final StartElement start, final T object) {
- final Attribute context = start.getAttributeByName(contextQName);
- final Attribute metadataETag = start.getAttributeByName(metadataEtagQName);
-
- return new Container<T>(
- context == null ? null : URI.create(context.getValue()),
- metadataETag == null ? null : metadataETag.getValue(),
- object);
- }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/1fa66760/lib/commons-core/src/main/java/org/apache/olingo/commons/core/op/AbstractODataDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/op/AbstractODataDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/op/AbstractODataDeserializer.java
index 96043c7..ceb6b7e 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/op/AbstractODataDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/op/AbstractODataDeserializer.java
@@ -19,14 +19,8 @@
package org.apache.olingo.commons.core.op;
import com.fasterxml.jackson.core.type.TypeReference;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.lang.reflect.Type;
-import javax.xml.stream.XMLEventReader;
-import javax.xml.stream.XMLEventWriter;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.events.StartElement;
import org.apache.olingo.commons.api.data.Entry;
import org.apache.olingo.commons.api.domain.ODataError;
import org.apache.olingo.commons.api.data.Feed;
@@ -89,38 +83,34 @@ public abstract class AbstractODataDeserializer extends AbstractJacksonTool impl
/*
* ------------------ Protected methods ------------------
*/
- @SuppressWarnings("unchecked")
- protected <T, V extends T> Container<T> xml(final InputStream input, final Class<V> reference) {
+ protected <T, V extends T> Container<T> atom(final InputStream input, final Class<V> reference) {
try {
- final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- final XMLEventReader reader = AtomDeserializer.FACTORY.createXMLEventReader(input);
- final StartElement start = atomDeserializer.skipBeforeFirstStartElement(reader);
-
- final XMLEventWriter writer = XMLOutputFactory.newFactory().createXMLEventWriter(baos);
- writer.add(start);
- writer.add(reader);
- writer.flush();
- writer.close();
-
- final V obj = getXmlMapper().readValue(new ByteArrayInputStream(baos.toByteArray()), reference);
- return (Container<T>) (obj instanceof Container ? obj : atomDeserializer.getContainer(start, obj));
+ return atomDeserializer.<T, V>read(input, reference);
} catch (Exception e) {
throw new IllegalArgumentException("While deserializing " + reference.getName(), e);
}
}
- protected <T, V extends T> Container<T> atom(final InputStream input, final Class<V> reference) {
+ @SuppressWarnings("unchecked")
+ protected <T, V extends T> Container<T> xml(final InputStream input, final Class<V> reference) {
try {
- return atomDeserializer.<T, V>read(input, reference);
+ final T obj = getXmlMapper().readValue(input, new TypeReference<V>() {
+ @Override
+ public Type getType() {
+ return reference;
+ }
+ });
+
+ return obj instanceof Container ? (Container<T>) obj : new Container<T>(null, null, obj);
} catch (Exception e) {
throw new IllegalArgumentException("While deserializing " + reference.getName(), e);
}
}
+ @SuppressWarnings("unchecked")
protected <T, V extends T> Container<T> json(final InputStream input, final Class<V> reference) {
try {
- T obj = getObjectMapper().readValue(input, new TypeReference<V>() {
+ final T obj = getObjectMapper().readValue(input, new TypeReference<V>() {
@Override
public Type getType() {
return reference;