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;