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/03/10 10:02:42 UTC

[26/51] [abbrv] [partial] [OLINGO-192] rename java packages

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataBinder.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataBinder.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataBinder.java
deleted file mode 100644
index 8483df3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataBinder.java
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.odata4.client.api.ODataClient;
-import org.apache.olingo.odata4.client.api.ODataConstants;
-import org.apache.olingo.odata4.client.api.data.ServiceDocument;
-import org.apache.olingo.odata4.client.api.data.ServiceDocumentItem;
-import org.apache.olingo.odata4.client.api.domain.ODataServiceDocument;
-import org.apache.olingo.odata4.client.api.op.ODataBinder;
-import org.apache.olingo.odata4.client.api.utils.XMLUtils;
-import org.apache.olingo.odata4.client.core.uri.URIUtils;
-import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public abstract class AbstractODataBinder implements ODataBinder {
-
-  private static final long serialVersionUID = 454285889193689536L;
-
-  /**
-   * Logger.
-   */
-  protected final Logger LOG = LoggerFactory.getLogger(AbstractODataBinder.class);
-
-  protected final ODataClient client;
-
-  protected AbstractODataBinder(final ODataClient client) {
-    this.client = client;
-  }
-
-  protected Element newEntryContent() {
-    Element properties = null;
-    try {
-      final DocumentBuilder builder = XMLUtils.DOC_BUILDER_FACTORY.newDocumentBuilder();
-      final Document doc = builder.newDocument();
-      properties = doc.createElement(ODataConstants.ELEM_PROPERTIES);
-      properties.setAttribute(ODataConstants.XMLNS_METADATA,
-              client.getServiceVersion().getNamespaceMap().get(ODataServiceVersion.NS_METADATA));
-      properties.setAttribute(ODataConstants.XMLNS_DATASERVICES,
-              client.getServiceVersion().getNamespaceMap().get(ODataServiceVersion.NS_DATASERVICES));
-      properties.setAttribute(ODataConstants.XMLNS_GML, ODataConstants.NS_GML);
-      properties.setAttribute(ODataConstants.XMLNS_GEORSS, ODataConstants.NS_GEORSS);
-    } catch (ParserConfigurationException e) {
-      LOG.error("Failure building entry content", e);
-    }
-
-    return properties;
-  }
-
-  @Override
-  public ODataServiceDocument getODataServiceDocument(final ServiceDocument resource) {
-    final ODataServiceDocument serviceDocument = new ODataServiceDocument();
-
-    for (ServiceDocumentItem entitySet : resource.getEntitySets()) {
-      // handles V3 JSON format oddities, where title is not contained
-      serviceDocument.getEntitySets().put(StringUtils.isBlank(entitySet.getTitle())
-              ? entitySet.getName() : entitySet.getTitle(),
-              URIUtils.getURI(resource.getBaseURI(), entitySet.getHref()));
-    }
-
-    return serviceDocument;
-  }
-
-//  @Override
-//  public <T extends Feed> T getFeed(final ODataEntitySet feed, final Class<T> reference) {
-//    final T feedResource = ResourceFactory.newFeed(reference);
-//
-//    final List<Entry> entries = new ArrayList<Entry>();
-//    feedResource.setEntries(entries);
-//
-//    final URI next = feed.getNext();
-//    if (next != null) {
-//      feedResource.setNext(next);
-//    }
-//
-//    for (ODataEntity entity : feed.getEntities()) {
-//      entries.add(getEntry(entity, ResourceFactory.entryClassForFeed(reference)));
-//    }
-//
-//    feedResource.setEntries(entries);
-//
-//    return feedResource;
-//  }
-//
-//  @Override
-//  public <T extends Entry> T getEntry(final ODataEntity entity, final Class<T> reference) {
-//    return getEntry(entity, reference, true);
-//  }
-//
-//  @Override
-//  @SuppressWarnings("unchecked")
-//  public <T extends Entry> T getEntry(final ODataEntity entity, final Class<T> reference,
-//          final boolean setType) {
-//
-//    final T entry = ResourceFactory.newEntry(reference);
-//    entry.setType(entity.getName());
-//
-//        // -------------------------------------------------------------
-//    // Add edit and self link
-//    // -------------------------------------------------------------
-//    final URI editLink = entity.getEditLink();
-//    if (editLink != null) {
-//      final Link entryEditLink = ResourceFactory.newLinkForEntry(reference);
-//      entryEditLink.setTitle(entity.getName());
-//      entryEditLink.setHref(editLink.toASCIIString());
-//      entryEditLink.setRel(ODataConstants.EDIT_LINK_REL);
-//      entry.setEditLink(entryEditLink);
-//    }
-//
-//    if (entity.isReadOnly()) {
-//      final Link entrySelfLink = ResourceFactory.newLinkForEntry(reference);
-//      entrySelfLink.setTitle(entity.getName());
-//      entrySelfLink.setHref(entity.getLink().toASCIIString());
-//      entrySelfLink.setRel(ODataConstants.SELF_LINK_REL);
-//      entry.setSelfLink(entrySelfLink);
-//    }
-//        // -------------------------------------------------------------
-//
-//        // -------------------------------------------------------------
-//    // Append navigation links (handling inline entry / feed as well)
-//    // -------------------------------------------------------------
-//    // handle navigation links
-//    for (ODataLink link : entity.getNavigationLinks()) {
-//      // append link 
-//      LOG.debug("Append navigation link\n{}", link);
-//      entry.addNavigationLink(getLinkResource(link, ResourceFactory.linkClassForEntry(reference)));
-//    }
-//        // -------------------------------------------------------------
-//
-//        // -------------------------------------------------------------
-//    // Append edit-media links
-//    // -------------------------------------------------------------
-//    for (ODataLink link : entity.getEditMediaLinks()) {
-//      LOG.debug("Append edit-media link\n{}", link);
-//      entry.addMediaEditLink(getLinkResource(link, ResourceFactory.linkClassForEntry(reference)));
-//    }
-//        // -------------------------------------------------------------
-//
-//        // -------------------------------------------------------------
-//    // Append association links
-//    // -------------------------------------------------------------
-//    for (ODataLink link : entity.getAssociationLinks()) {
-//      LOG.debug("Append association link\n{}", link);
-//      entry.addAssociationLink(getLinkResource(link, ResourceFactory.linkClassForEntry(reference)));
-//    }
-//    // -------------------------------------------------------------
-//
-//    final Element content = newEntryContent();
-//    if (entity.isMediaEntity()) {
-//      entry.setMediaEntryProperties(content);
-//      entry.setMediaContentSource(entity.getMediaContentSource());
-//      entry.setMediaContentType(entity.getMediaContentType());
-//    } else {
-//      entry.setContent(content);
-//    }
-//
-//    for (ODataProperty prop : entity.getProperties()) {
-//      content.appendChild(toDOMElement(prop, content.getOwnerDocument(), setType));
-//    }
-//
-//    return entry;
-//  }
-//
-//  @Override
-//  public Element toDOMElement(final ODataProperty prop) {
-//    try {
-//      return toDOMElement(prop, XMLUtils.DOC_BUILDER_FACTORY.newDocumentBuilder().newDocument(), true);
-//    } catch (ParserConfigurationException e) {
-//      LOG.error("Error retrieving property DOM", e);
-//      throw new IllegalArgumentException(e);
-//    }
-//  }
-//
-//  @Override
-//  public ODataLinkCollection getLinkCollection(final LinkCollection linkCollection) {
-//    final ODataLinkCollection collection = new ODataLinkCollection(linkCollection.getNext());
-//    collection.setLinks(linkCollection.getLinks());
-//    return collection;
-//  }
-//
-//  @Override
-//  public ODataEntitySet getODataEntitySet(final Feed resource) {
-//    return getODataEntitySet(resource, null);
-//  }
-//
-//  @Override
-//  public ODataEntitySet getODataEntitySet(final Feed resource, final URI defaultBaseURI) {
-//    if (LOG.isDebugEnabled()) {
-//      final StringWriter writer = new StringWriter();
-//      client.getSerializer().feed(resource, writer);
-//      writer.flush();
-//      LOG.debug("FeedResource -> ODataEntitySet:\n{}", writer.toString());
-//    }
-//
-//    final URI base = defaultBaseURI == null ? resource.getBaseURI() : defaultBaseURI;
-//
-//    final URI next = resource.getNext();
-//
-//    final ODataEntitySet entitySet = next == null
-//            ? client.getObjectFactory().newEntitySet()
-//            : client.getObjectFactory().newEntitySet(URIUtils.getURI(base, next.toASCIIString()));
-//
-//    if (resource.getCount() != null) {
-//      entitySet.setCount(resource.getCount());
-//    }
-//
-//    for (Entry entryResource : resource.getEntries()) {
-//      entitySet.addEntity(getODataEntity(entryResource));
-//    }
-//
-//    return entitySet;
-//  }
-//
-//  @Override
-//  public ODataEntity getODataEntity(final Entry resource) {
-//    return getODataEntity(resource, null);
-//  }
-//
-//  @Override
-//  public ODataEntity getODataEntity(final Entry resource, final URI defaultBaseURI) {
-//    if (LOG.isDebugEnabled()) {
-//      final StringWriter writer = new StringWriter();
-//      client.getSerializer().entry(resource, writer);
-//      writer.flush();
-//      LOG.debug("EntryResource -> ODataEntity:\n{}", writer.toString());
-//    }
-//
-//    final URI base = defaultBaseURI == null ? resource.getBaseURI() : defaultBaseURI;
-//
-//    final ODataEntity entity = resource.getSelfLink() == null
-//            ? client.getObjectFactory().newEntity(resource.getType())
-//            : client.getObjectFactory().newEntity(resource.getType(),
-//                    URIUtils.getURI(base, resource.getSelfLink().getHref()));
-//
-//    if (StringUtils.isNotBlank(resource.getETag())) {
-//      entity.setETag(resource.getETag());
-//    }
-//
-//    if (resource.getEditLink() != null) {
-//      entity.setEditLink(URIUtils.getURI(base, resource.getEditLink().getHref()));
-//    }
-//
-//    for (Link link : resource.getAssociationLinks()) {
-//      entity.addLink(client.getObjectFactory().newAssociationLink(link.getTitle(), base, link.getHref()));
-//    }
-//
-//    for (Link link : resource.getNavigationLinks()) {
-//      final Entry inlineEntry = link.getInlineEntry();
-//      final Feed inlineFeed = link.getInlineFeed();
-//
-//      if (inlineEntry == null && inlineFeed == null) {
-//        entity.addLink(
-//                client.getObjectFactory().newEntityNavigationLink(link.getTitle(), base, link.getHref()));
-//      } else if (inlineFeed == null) {
-//        entity.addLink(client.getObjectFactory().newInlineEntity(
-//                link.getTitle(), base, link.getHref(),
-//                getODataEntity(inlineEntry,
-//                        inlineEntry.getBaseURI() == null ? base : inlineEntry.getBaseURI())));
-//      } else {
-//        entity.addLink(client.getObjectFactory().newInlineEntitySet(
-//                link.getTitle(), base, link.getHref(),
-//                getODataEntitySet(inlineFeed,
-//                        inlineFeed.getBaseURI() == null ? base : inlineFeed.getBaseURI())));
-//      }
-//    }
-//
-//    for (Link link : resource.getMediaEditLinks()) {
-//      entity.addLink(client.getObjectFactory().newMediaEditLink(link.getTitle(), base, link.getHref()));
-//    }
-//
-//    for (ODataOperation operation : resource.getOperations()) {
-//      operation.setTarget(URIUtils.getURI(base, operation.getTarget()));
-//      entity.addOperation(operation);
-//    }
-//
-//    final Element content;
-//    if (resource.isMediaEntry()) {
-//      entity.setMediaEntity(true);
-//      entity.setMediaContentSource(resource.getMediaContentSource());
-//      entity.setMediaContentType(resource.getMediaContentType());
-//      content = resource.getMediaEntryProperties();
-//    } else {
-//      content = resource.getContent();
-//    }
-//    if (content != null) {
-//      for (Node property : XMLUtils.getChildNodes(content, Node.ELEMENT_NODE)) {
-//        try {
-//          entity.addProperty(getProperty((Element) property));
-//        } catch (IllegalArgumentException e) {
-//          LOG.warn("Failure retrieving EdmType for {}", property.getTextContent(), e);
-//        }
-//      }
-//    }
-//
-//    return entity;
-//  }
-//
-//  @Override
-//  public <T extends Link> T getLinkResource(final ODataLink link, final Class<T> reference) {
-//    final T linkResource = ResourceFactory.newLink(reference);
-//    linkResource.setRel(link.getRel());
-//    linkResource.setTitle(link.getName());
-//    linkResource.setHref(link.getLink() == null ? null : link.getLink().toASCIIString());
-//    linkResource.setType(link.getType().toString());
-//
-//    if (link instanceof ODataInlineEntity) {
-//      // append inline entity
-//      final ODataEntity inlineEntity = ((ODataInlineEntity) link).getEntity();
-//      LOG.debug("Append in-line entity\n{}", inlineEntity);
-//
-//      linkResource.setInlineEntry(getEntry(inlineEntity, ResourceFactory.entryClassForLink(reference)));
-//    } else if (link instanceof ODataInlineEntitySet) {
-//      // append inline feed
-//      final ODataEntitySet InlineFeed = ((ODataInlineEntitySet) link).getEntitySet();
-//      LOG.debug("Append in-line feed\n{}", InlineFeed);
-//
-//      linkResource.setInlineFeed(getFeed(InlineFeed, ResourceFactory.feedClassForLink(reference)));
-//    }
-//
-//    return linkResource;
-//  }
-//
-//  @Override
-//  public ODataProperty getProperty(final Element property) {
-//    final ODataProperty res;
-//
-//    final Node nullNode = property.getAttributes().getNamedItem(ODataConstants.ATTR_NULL);
-//
-//    if (nullNode == null) {
-//      final EdmType edmType = StringUtils.isBlank(property.getAttribute(ODataConstants.ATTR_M_TYPE))
-//              ? null
-//              : newEdmType(property.getAttribute(ODataConstants.ATTR_M_TYPE));
-//
-//      final PropertyType propType = edmType == null
-//              ? guessPropertyType(property)
-//              : edmType.isCollection()
-//              ? PropertyType.COLLECTION
-//              : edmType.isSimpleType()
-//              ? PropertyType.PRIMITIVE
-//              : PropertyType.COMPLEX;
-//
-//      switch (propType) {
-//        case COLLECTION:
-//          res = fromCollectionPropertyElement(property, edmType);
-//          break;
-//
-//        case COMPLEX:
-//          res = fromComplexPropertyElement(property, edmType);
-//          break;
-//
-//        case PRIMITIVE:
-//          res = fromPrimitivePropertyElement(property, edmType);
-//          break;
-//
-//        case EMPTY:
-//        default:
-//          res = client.getObjectFactory().newPrimitiveProperty(XMLUtils.getSimpleName(property), null);
-//      }
-//    } else {
-//      res = client.getObjectFactory().newPrimitiveProperty(XMLUtils.getSimpleName(property), null);
-//    }
-//
-//    return res;
-//  }
-//
-//  protected PropertyType guessPropertyType(final Element property) {
-//    PropertyType res = null;
-//
-//    if (property.hasChildNodes()) {
-//      final NodeList children = property.getChildNodes();
-//
-//      for (int i = 0; res == null && i < children.getLength(); i++) {
-//        final Node child = children.item(i);
-//
-//        if (child.getNodeType() == Node.ELEMENT_NODE
-//                && !child.getNodeName().startsWith(ODataConstants.PREFIX_GML)) {
-//
-//          res = ODataConstants.ELEM_ELEMENT.equals(XMLUtils.getSimpleName(child))
-//                  ? PropertyType.COLLECTION
-//                  : PropertyType.COMPLEX;
-//        }
-//      }
-//    } else {
-//      res = PropertyType.EMPTY;
-//    }
-//
-//    if (res == null) {
-//      res = PropertyType.PRIMITIVE;
-//    }
-//
-//    return res;
-//  }
-//
-//  protected Element toDOMElement(final ODataProperty prop, final Document doc, final boolean setType) {
-//    final Element element;
-//
-//    if (prop.hasNullValue()) {
-//      // null property handling
-//      element = toNullPropertyElement(prop, doc);
-//    } else if (prop.hasPrimitiveValue()) {
-//      // primitive property handling
-//      element = toPrimitivePropertyElement(prop, doc, setType);
-//    } else if (prop.hasCollectionValue()) {
-//      // collection property handling
-//      element = toCollectionPropertyElement(prop, doc, setType);
-//    } else {
-//      // complex property handling
-//      element = toComplexPropertyElement(prop, doc, setType);
-//    }
-//
-//    element.setAttribute(ODataConstants.XMLNS_METADATA,
-//            client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA));
-//    element.setAttribute(ODataConstants.XMLNS_DATASERVICES,
-//            client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_DATASERVICES));
-//    element.setAttribute(ODataConstants.XMLNS_GML, ODataConstants.NS_GML);
-//    element.setAttribute(ODataConstants.XMLNS_GEORSS, ODataConstants.NS_GEORSS);
-//
-//    return element;
-//  }
-//
-//  protected Element toNullPropertyElement(final ODataProperty prop, final Document doc) {
-//    final Element element = doc.createElement(ODataConstants.PREFIX_DATASERVICES + prop.getName());
-//    element.setAttribute(ODataConstants.ATTR_NULL, Boolean.toString(true));
-//    return element;
-//  }
-//
-//  protected Element toPrimitivePropertyElement(
-//          final ODataProperty prop, final Document doc, final boolean setType) {
-//
-//    return toPrimitivePropertyElement(prop.getName(), prop.getPrimitiveValue(), doc, setType);
-//  }
-//
-//  protected Element toPrimitivePropertyElement(
-//          final String name, final ODataPrimitiveValue value, final Document doc, final boolean setType) {
-//
-//    final Element element = doc.createElement(ODataConstants.PREFIX_DATASERVICES + name);
-//    if (setType) {
-//      element.setAttribute(ODataConstants.ATTR_M_TYPE, value.getTypeName());
-//    }
-//
-//    if (value instanceof ODataGeospatialValue) {
-//      element.appendChild(doc.importNode(((ODataGeospatialValue) value).toTree(), true));
-//    } else {
-//      element.setTextContent(value.toString());
-//    }
-//
-//    return element;
-//  }
-//
-//  protected Element toCollectionPropertyElement(
-//          final ODataProperty prop, final Document doc, final boolean setType) {
-//
-//    if (!prop.hasCollectionValue()) {
-//      throw new IllegalArgumentException("Invalid property value type "
-//              + prop.getValue().getClass().getSimpleName());
-//    }
-//
-//    final ODataCollectionValue value = prop.getCollectionValue();
-//
-//    final Element element = doc.createElement(ODataConstants.PREFIX_DATASERVICES + prop.getName());
-//    if (value.getTypeName() != null && setType) {
-//      element.setAttribute(ODataConstants.ATTR_M_TYPE, value.getTypeName());
-//    }
-//
-//    for (ODataValue el : value) {
-//      if (el.isPrimitive()) {
-//        element.appendChild(
-//                toPrimitivePropertyElement(ODataConstants.ELEM_ELEMENT, el.asPrimitive(), doc, setType));
-//      } else {
-//        element.appendChild(
-//                toComplexPropertyElement(ODataConstants.ELEM_ELEMENT, el.asComplex(), doc, setType));
-//      }
-//    }
-//
-//    return element;
-//  }
-//
-//  protected Element toComplexPropertyElement(
-//          final ODataProperty prop, final Document doc, final boolean setType) {
-//
-//    return toComplexPropertyElement(prop.getName(), prop.getComplexValue(), doc, setType);
-//  }
-//
-//  protected Element toComplexPropertyElement(
-//          final String name, final ODataComplexValue value, final Document doc, final boolean setType) {
-//
-//    final Element element = doc.createElement(ODataConstants.PREFIX_DATASERVICES + name);
-//    if (value.getTypeName() != null && setType) {
-//      element.setAttribute(ODataConstants.ATTR_M_TYPE, value.getTypeName());
-//    }
-//
-//    for (ODataProperty field : value) {
-//      element.appendChild(toDOMElement(field, doc, true));
-//    }
-//    return element;
-//  }
-//
-//  protected ODataPrimitiveValue fromPrimitiveValueElement(final Element prop, final EdmType edmType) {
-//    final ODataPrimitiveValue value;
-//    if (edmType != null && edmType.getSimpleType().isGeospatial()) {
-//      final Element geoProp = ODataConstants.PREFIX_GML.equals(prop.getPrefix())
-//              ? prop : (Element) XMLUtils.getChildNodes(prop, Node.ELEMENT_NODE).get(0);
-//      value = client.getGeospatialValueBuilder().
-//              setType(edmType.getSimpleType()).setTree(geoProp).build();
-//    } else {
-//      value = client.getPrimitiveValueBuilder().
-//              setType(edmType == null ? null : edmType.getSimpleType()).setText(prop.getTextContent()).build();
-//    }
-//    return value;
-//  }
-//
-//  protected ODataProperty fromPrimitivePropertyElement(final Element prop, final EdmType edmType) {
-//    return client.getObjectFactory().newPrimitiveProperty(
-//            XMLUtils.getSimpleName(prop), fromPrimitiveValueElement(prop, edmType));
-//  }
-//
-//  protected ODataComplexValue fromComplexValueElement(final Element prop, final EdmType edmType) {
-//    final ODataComplexValue value = new ODataComplexValue(edmType == null ? null : edmType.getTypeExpression());
-//
-//    for (Node child : XMLUtils.getChildNodes(prop, Node.ELEMENT_NODE)) {
-//      value.add(getProperty((Element) child));
-//    }
-//
-//    return value;
-//  }
-//
-//  protected ODataProperty fromComplexPropertyElement(final Element prop, final EdmType edmType) {
-//    return client.getObjectFactory().newComplexProperty(XMLUtils.getSimpleName(prop),
-//            fromComplexValueElement(prop, edmType));
-//  }
-//
-//  protected ODataProperty fromCollectionPropertyElement(final Element prop, final EdmType edmType) {
-//    final ODataCollectionValue value
-//            = new ODataCollectionValue(edmType == null ? null : edmType.getTypeExpression());
-//
-//    final EdmType type = edmType == null ? null : newEdmType(edmType.getBaseType());
-//    final NodeList elements = prop.getChildNodes();
-//
-//    for (int i = 0; i < elements.getLength(); i++) {
-//      if (elements.item(i).getNodeType() != Node.TEXT_NODE) {
-//        final Element child = (Element) elements.item(i);
-//
-//        switch (guessPropertyType(child)) {
-//          case COMPLEX:
-//            value.add(fromComplexValueElement(child, type));
-//            break;
-//          case PRIMITIVE:
-//            value.add(fromPrimitiveValueElement(child, type));
-//            break;
-//          default:
-//          // do not add null or empty values
-//        }
-//      }
-//    }
-//
-//    return client.getObjectFactory().newCollectionProperty(XMLUtils.getSimpleName(prop), value);
-//  }
-//  protected abstract EdmType newEdmType(String expression);
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataDeserializer.java
deleted file mode 100644
index ed4ebd0..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataDeserializer.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import java.io.InputStream;
-import org.apache.olingo.odata4.client.api.ODataClient;
-import org.apache.olingo.odata4.client.api.op.ODataDeserializer;
-import org.apache.olingo.odata4.client.core.xml.XMLParser;
-import org.w3c.dom.Element;
-
-public abstract class AbstractODataDeserializer extends AbstractJacksonTool implements ODataDeserializer {
-
-  private static final long serialVersionUID = -4244158979195609909L;
-
-//    private final AtomDeserializer atomDeserializer;
-  public AbstractODataDeserializer(final ODataClient client) {
-    super(client);
-//        this.atomDeserializer = new AtomDeserializer(client);
-  }
-
-//    @Override
-//    @SuppressWarnings("unchecked")
-//    public <T extends Feed> T toFeed(final InputStream input, final Class<T> reference) {
-//        T entry;
-//
-//        if (AtomFeed.class.equals(reference)) {
-//            entry = (T) toAtomFeed(input);
-//        } else {
-//            entry = (T) toJSONFeed(input);
-//        }
-//
-//        return entry;
-//    }
-//
-//    @Override
-//    @SuppressWarnings("unchecked")
-//    public <T extends Entry> T toEntry(final InputStream input, final Class<T> reference) {
-//        T entry;
-//
-//        if (AtomEntry.class.equals(reference)) {
-//            entry = (T) toAtomEntry(input);
-//
-//        } else {
-//            entry = (T) toJSONEntry(input);
-//        }
-//
-//        return entry;
-//    }
-//
-//    @Override
-//    public Element toPropertyDOM(final InputStream input, final ODataFormat format) {
-//        return format == ODataFormat.XML
-//                ? toPropertyDOMFromXML(input)
-//                : toPropertyDOMFromJSON(input);
-//    }
-//
-//    @Override
-//    public LinkCollection toLinkCollection(final InputStream input, final ODataFormat format) {
-//        return format == ODataFormat.XML
-//                ? toLinkCollectionFromXML(input)
-//                : toLinkCollectionFromJSON(input);
-//    }
-//
-//    @Override
-//    public ODataError toODataError(final InputStream input, final boolean isXML) {
-//        return isXML
-//                ? toODataErrorFromXML(input)
-//                : toODataErrorFromJSON(input);
-//    }
-//
-  @Override
-  public Element toDOM(final InputStream input) {
-    return XMLParser.PARSER.deserialize(input);
-  }
-//
-//    /*
-//     * ------------------ Protected methods ------------------
-//     */
-//    protected AtomFeed toAtomFeed(final InputStream input) {
-//        try {
-//            return atomDeserializer.feed(toDOM(input));
-//        } catch (Exception e) {
-//            throw new IllegalArgumentException("While deserializing Atom feed", e);
-//        }
-//    }
-//
-//    protected AtomEntry toAtomEntry(final InputStream input) {
-//        try {
-//            return atomDeserializer.entry(toDOM(input));
-//        } catch (Exception e) {
-//            throw new IllegalArgumentException("While deserializing Atom entry", e);
-//        }
-//    }
-//
-//    protected JSONFeed toJSONFeed(final InputStream input) {
-//        try {
-//            return getObjectMapper().readValue(input, JSONFeed.class);
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While deserializing JSON feed", e);
-//        }
-//    }
-//
-//    protected abstract AbstractJSONEntry toJSONEntry(final InputStream input);
-//
-//    protected Element toPropertyDOMFromXML(final InputStream input) {
-//        return toDOM(input);
-//    }
-//
-//    protected Element toPropertyDOMFromJSON(final InputStream input) {
-//        try {
-//            return getObjectMapper().readValue(input, JSONProperty.class).getContent();
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While deserializing JSON property", e);
-//        }
-//    }
-//
-//    protected XMLLinkCollection toLinkCollectionFromXML(final InputStream input) {
-//        final Element root = toDOM(input);
-//
-//        final NodeList uris = root.getOwnerDocument().getElementsByTagName(ODataConstants.ELEM_URI);
-//
-//        final List<URI> links = new ArrayList<URI>();
-//        for (int i = 0; i < uris.getLength(); i++) {
-//            links.add(URI.create(uris.item(i).getTextContent()));
-//        }
-//
-//        final NodeList next = root.getElementsByTagName(ODataConstants.NEXT_LINK_REL);
-//        final XMLLinkCollection linkCollection = next.getLength() > 0
-//                ? new XMLLinkCollection(URI.create(next.item(0).getTextContent()))
-//                : new XMLLinkCollection();
-//        linkCollection.setLinks(links);
-//
-//        return linkCollection;
-//    }
-//
-//    protected JSONLinkCollection toLinkCollectionFromJSON(final InputStream input) {
-//        try {
-//            return getObjectMapper().readValue(input, JSONLinkCollection.class);
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While deserializing JSON $links", e);
-//        }
-//    }
-//
-//    protected XMLODataError toODataErrorFromXML(final InputStream input) {
-//        try {
-//            final XmlMapper xmlMapper = new XmlMapper(
-//                    new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()), new JacksonXmlModule());
-//            return xmlMapper.readValue(input, XMLODataError.class);
-//        } catch (Exception e) {
-//            throw new IllegalArgumentException("While deserializing XML error", e);
-//        }
-//    }
-//
-//    protected JSONODataError toODataErrorFromJSON(final InputStream input) {
-//        try {
-//            return getObjectMapper().readValue(input, JSONODataErrorBundle.class).getError();
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While deserializing JSON error", e);
-//        }
-//    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataReader.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataReader.java
deleted file mode 100644
index 3704db7..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataReader.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import org.apache.olingo.odata4.client.api.ODataClient;
-import org.apache.olingo.odata4.client.api.op.ODataReader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class AbstractODataReader implements ODataReader {
-
-  private static final long serialVersionUID = -1988865870981207079L;
-
-  /**
-   * Logger.
-   */
-  protected static final Logger LOG = LoggerFactory.getLogger(AbstractODataReader.class);
-
-  protected final ODataClient client;
-
-  protected AbstractODataReader(final ODataClient client) {
-    this.client = client;
-  }
-
-//    @Override
-//    public ODataEntitySet readEntitySet(final InputStream input, final ODataPubFormat format) {
-//        return client.getBinder().getODataEntitySet(
-//                client.getDeserializer().toFeed(input, ResourceFactory.feedClassForFormat(format)));
-//    }
-//
-//    @Override
-//    public ODataEntity readEntity(final InputStream input, final ODataPubFormat format) {
-//        return client.getBinder().getODataEntity(
-//                client.getDeserializer().toEntry(input, ResourceFactory.entryClassForFormat(format)));
-//    }
-//
-//    @Override
-//    public ODataProperty readProperty(final InputStream input, final ODataFormat format) {
-//        final Element property = client.getDeserializer().toPropertyDOM(input, format);
-//
-//        // The ODataProperty object is used either for actual entity properties and for invoke result 
-//         // (when return type is neither an entity nor a collection of entities).
-//        // Such formats are mostly the same except for collections: an entity property looks like
-//        //     <aproperty m:type="Collection(AType)">
-//        //       <element>....</element>
-//        //     </aproperty>
-//        //
-//        // while an invoke result with returnType="Collection(AnotherType)" looks like
-//        //     <functionImportName>
-//        //       <element m:type="AnotherType">...</element>
-//        //     <functionImportName>
-//        //
-//        // The code below is meant for "normalizing" the latter into
-//        //     <functionImportName m:type="Collection(AnotherType)">
-//        //       <element m:type="AnotherType">...</element>
-//        //     <functionImportName>
-//        final String type = property.getAttribute(ODataConstants.ATTR_M_TYPE);
-//        final NodeList elements = property.getElementsByTagName(ODataConstants.ELEM_ELEMENT);
-//        if (StringUtils.isBlank(type) && elements != null && elements.getLength() > 0) {
-//            final Node elementType = elements.item(0).getAttributes().getNamedItem(ODataConstants.ATTR_M_TYPE);
-//            if (elementType != null) {
-//                property.setAttribute(ODataConstants.ATTR_M_TYPE, "Collection(" + elementType.getTextContent() + ")");
-//            }
-//        }
-//
-//        return client.getBinder().getProperty(property);
-//    }
-//
-//    @Override
-//    public ODataLinkCollection readLinks(final InputStream input, final ODataFormat format) {
-//        return client.getBinder().getLinkCollection(
-//                client.getDeserializer().toLinkCollection(input, format));
-//    }
-//
-//  @Override
-//  public ODataError readError(final InputStream inputStream, final boolean isXML) {
-//    return client.getDeserializer().toODataError(inputStream, isXML);
-//  }
-//
-//    @Override
-//    @SuppressWarnings("unchecked")
-//    public <T> T read(final InputStream src, final String format, final Class<T> reference) {
-//        Object res;
-//
-//        try {
-//            if (ODataEntitySetIterator.class.isAssignableFrom(reference)) {
-//                res = new ODataEntitySetIterator(client, src, ODataPubFormat.fromString(format));
-//            } else if (ODataEntitySet.class.isAssignableFrom(reference)) {
-//                res = readEntitySet(src, ODataPubFormat.fromString(format));
-//            } else if (ODataEntity.class.isAssignableFrom(reference)) {
-//                res = readEntity(src, ODataPubFormat.fromString(format));
-//            } else if (ODataProperty.class.isAssignableFrom(reference)) {
-//                res = readProperty(src, ODataFormat.fromString(format));
-//            } else if (ODataLinkCollection.class.isAssignableFrom(reference)) {
-//                res = readLinks(src, ODataFormat.fromString(format));
-//            } else if (ODataValue.class.isAssignableFrom(reference)) {
-//                res = client.getPrimitiveValueBuilder().
-//                        setType(ODataValueFormat.fromString(format) == ODataValueFormat.TEXT
-//                                ? EdmSimpleType.String : EdmSimpleType.Stream).
-//                        setText(IOUtils.toString(src)).
-//                        build();
-//            } else if (AbstractEdmMetadata.class.isAssignableFrom(reference)) {
-//                res = readMetadata(src);
-//            } else if (ODataServiceDocument.class.isAssignableFrom(reference)) {
-//                res = readServiceDocument(src, ODataFormat.fromString(format));
-//            } else if (ODataError.class.isAssignableFrom(reference)) {
-//                res = readError(src, !format.toString().contains("json"));
-//            } else {
-//                throw new IllegalArgumentException("Invalid reference type " + reference);
-//            }
-//        } catch (Exception e) {
-//            LOG.warn("Cast error", e);
-//            res = null;
-//        } finally {
-//            if (!ODataEntitySetIterator.class.isAssignableFrom(reference)) {
-//                IOUtils.closeQuietly(src);
-//            }
-//        }
-//
-//        return (T) res;
-//    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataSerializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataSerializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataSerializer.java
deleted file mode 100644
index 523d8b4..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/AbstractODataSerializer.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import org.apache.olingo.odata4.client.api.ODataClient;
-import org.apache.olingo.odata4.client.api.op.ODataSerializer;
-import org.apache.olingo.odata4.client.core.xml.XMLParser;
-import org.w3c.dom.Node;
-
-public abstract class AbstractODataSerializer extends AbstractJacksonTool implements ODataSerializer {
-
-  private static final long serialVersionUID = -357777648541325363L;
-
-//    private final AtomSerializer atomSerializer;
-  public AbstractODataSerializer(final ODataClient client) {
-    super(client);
-//        this.atomSerializer = new AtomSerializer(client);
-  }
-
-//    @Override
-//    public <T extends Feed> void feed(final T obj, final OutputStream out) {
-//        feed(obj, new OutputStreamWriter(out));
-//    }
-//
-//    @Override
-//    public <T extends Feed> void feed(final T obj, final Writer writer) {
-//        if (obj instanceof AtomFeed) {
-//            atom((AtomFeed) obj, writer);
-//        } else {
-//            json((JSONFeed) obj, writer);
-//        }
-//    }
-//
-//    @Override
-//    public <T extends Entry> void entry(final T obj, final OutputStream out) {
-//        entry(obj, new OutputStreamWriter(out));
-//    }
-//
-//    @Override
-//    public <T extends Entry> void entry(final T obj, final Writer writer) {
-//        if (obj instanceof AtomEntry) {
-//            atom((AtomEntry) obj, writer);
-//        } else {
-//            json((JSONEntry) obj, writer);
-//        }
-//    }
-//
-//    @Override
-//    public void property(final Element element, final ODataFormat format, final OutputStream out) {
-//        property(element, format, new OutputStreamWriter(out));
-//    }
-//
-//    @Override
-//    public void property(final Element element, final ODataFormat format, final Writer writer) {
-//        if (format == ODataFormat.XML) {
-//            dom(element, writer);
-//        } else {
-//            json(element, writer);
-//        }
-//    }
-//
-//    @Override
-//    public void link(final ODataLink link, final ODataFormat format, final OutputStream out) {
-//        link(link, format, new OutputStreamWriter(out));
-//    }
-//
-//    @Override
-//    public void link(final ODataLink link, final ODataFormat format, final Writer writer) {
-//        if (format == ODataFormat.XML) {
-//            xmlLink(link, writer);
-//        } else {
-//            jsonLink(link, writer);
-//        }
-//    }
-//
-  @Override
-  public void dom(final Node content, final OutputStream out) {
-    dom(content, new OutputStreamWriter(out));
-  }
-
-  @Override
-  public void dom(final Node content, final Writer writer) {
-    XMLParser.PARSER.serialize(content, writer);
-  }
-//
-//    /*
-//     * ------------------ Protected methods ------------------
-//     */
-//    protected <T extends AbstractPayloadObject> void atom(final T obj, final Writer writer) {
-//        try {
-//            dom(atomSerializer.serialize(obj), writer);
-//        } catch (Exception e) {
-//            throw new IllegalArgumentException("While serializing Atom object", e);
-//        }
-//    }
-//
-//    protected <T extends AbstractPayloadObject> void json(final T obj, final Writer writer) {
-//        try {
-//            getObjectMapper().writeValue(writer, obj);
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While serializing JSON object", e);
-//        }
-//    }
-//
-//    protected void json(final Element element, final Writer writer) {
-//        try {
-//            final JSONProperty property = new JSONProperty();
-//            property.setContent(element);
-//            getObjectMapper().writeValue(writer, property);
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While serializing JSON property", e);
-//        }
-//    }
-//
-//    protected void xmlLink(final ODataLink link, final Writer writer) {
-//        try {
-//            final DocumentBuilder builder = XMLUtils.DOC_BUILDER_FACTORY.newDocumentBuilder();
-//            final Document doc = builder.newDocument();
-//            final Element uri = doc.createElementNS(
-//                    client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_DATASERVICES),
-//                    ODataConstants.ELEM_URI);
-//            uri.appendChild(doc.createTextNode(link.getLink().toASCIIString()));
-//
-//            dom(uri, writer);
-//        } catch (Exception e) {
-//            throw new IllegalArgumentException("While serializing XML link", e);
-//        }
-//    }
-//
-//    protected void jsonLink(final ODataLink link, final Writer writer) {
-//        final ObjectMapper mapper = getObjectMapper();
-//        final ObjectNode uri = mapper.createObjectNode();
-//        uri.put(ODataConstants.JSON_URL, link.getLink().toASCIIString());
-//
-//        try {
-//            mapper.writeValue(writer, uri);
-//        } catch (Exception e) {
-//            throw new IllegalArgumentException("While serializing JSON link", e);
-//        }
-//    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ComplexTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ComplexTypeDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ComplexTypeDeserializer.java
deleted file mode 100644
index 1ceca91..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ComplexTypeDeserializer.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import java.io.IOException;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.odata4.client.core.edm.xml.AbstractComplexType;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.AnnotationImpl;
-import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-
-public class ComplexTypeDeserializer extends AbstractEdmDeserializer<AbstractComplexType> {
-
-  @Override
-  protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-          throws IOException, JsonProcessingException {
-
-    final AbstractComplexType complexType = ODataServiceVersion.V30 == client.getServiceVersion()
-            ? new org.apache.olingo.odata4.client.core.edm.xml.v3.ComplexTypeImpl()
-            : new org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl();
-
-    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-      final JsonToken token = jp.getCurrentToken();
-      if (token == JsonToken.FIELD_NAME) {
-        if ("Name".equals(jp.getCurrentName())) {
-          complexType.setName(jp.nextTextValue());
-        } else if ("Abstract".equals(jp.getCurrentName())) {
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl) complexType).
-                  setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("BaseType".equals(jp.getCurrentName())) {
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl) complexType).
-                  setBaseType(jp.nextTextValue());
-        } else if ("OpenType".equals(jp.getCurrentName())) {
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl) complexType).
-                  setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("Property".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          if (complexType instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.ComplexTypeImpl) {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v3.ComplexTypeImpl) complexType).
-                    getProperties().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl.class));
-          } else {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl) complexType).
-                    getProperties().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v4.PropertyImpl.class));
-          }
-        } else if ("NavigationProperty".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl) complexType).
-                  getNavigationProperties().add(jp.readValueAs(
-                                  org.apache.olingo.odata4.client.core.edm.xml.v4.NavigationPropertyImpl.class));
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.ComplexTypeImpl) complexType).
-                  setAnnotation(jp.readValueAs(AnnotationImpl.class));
-        }
-      }
-    }
-
-    return complexType;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityContainerDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityContainerDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityContainerDeserializer.java
deleted file mode 100644
index 92be399..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityContainerDeserializer.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import java.io.IOException;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.odata4.client.core.edm.xml.AbstractEntityContainer;
-import org.apache.olingo.odata4.client.core.edm.xml.v3.AssociationSetImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.ActionImportImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.AnnotationImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.SingletonImpl;
-import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-
-@SuppressWarnings("rawtypes")
-public class EntityContainerDeserializer extends AbstractEdmDeserializer<AbstractEntityContainer> {
-
-  @Override
-  protected AbstractEntityContainer doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-          throws IOException, JsonProcessingException {
-
-    final AbstractEntityContainer entityContainer = ODataServiceVersion.V30 == client.getServiceVersion()
-            ? new org.apache.olingo.odata4.client.core.edm.xml.v3.EntityContainerImpl()
-            : new org.apache.olingo.odata4.client.core.edm.xml.v4.EntityContainerImpl();
-
-    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-      final JsonToken token = jp.getCurrentToken();
-      if (token == JsonToken.FIELD_NAME) {
-        if ("Name".equals(jp.getCurrentName())) {
-          entityContainer.setName(jp.nextTextValue());
-        } else if ("Extends".equals(jp.getCurrentName())) {
-          entityContainer.setExtends(jp.nextTextValue());
-        } else if ("LazyLoadingEnabled".equals(jp.getCurrentName())) {
-          entityContainer.setLazyLoadingEnabled(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("IsDefaultEntityContainer".equals(jp.getCurrentName())) {
-          entityContainer.setDefaultEntityContainer(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("EntitySet".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          if (entityContainer instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.EntityContainerImpl) {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v3.EntityContainerImpl) entityContainer).
-                    getEntitySets().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v3.EntitySetImpl.class));
-          } else {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityContainerImpl) entityContainer).
-                    getEntitySets().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v4.EntitySetImpl.class));
-          }
-        } else if ("AssociationSet".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v3.EntityContainerImpl) entityContainer).
-                  getAssociationSets().add(jp.readValueAs(AssociationSetImpl.class));
-        } else if ("Singleton".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityContainerImpl) entityContainer).
-                  getSingletons().add(jp.readValueAs(SingletonImpl.class));
-        } else if ("ActionImport".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityContainerImpl) entityContainer).
-                  getActionImports().add(jp.readValueAs(ActionImportImpl.class));
-        } else if ("FunctionImport".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          if (entityContainer instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.EntityContainerImpl) {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v3.EntityContainerImpl) entityContainer).
-                    getFunctionImports().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v3.FunctionImportImpl.class));
-          } else {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityContainerImpl) entityContainer).
-                    getFunctionImports().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v4.FunctionImportImpl.class));
-          }
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityContainerImpl) entityContainer).
-                  setAnnotation(jp.readValueAs(AnnotationImpl.class));
-        }
-      }
-    }
-
-    return entityContainer;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityKeyDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityKeyDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityKeyDeserializer.java
deleted file mode 100644
index dd26a97..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityKeyDeserializer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import java.io.IOException;
-import org.apache.olingo.odata4.client.core.edm.xml.EntityKeyImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.PropertyRefImpl;
-
-public class EntityKeyDeserializer extends AbstractEdmDeserializer<EntityKeyImpl> {
-
-  @Override
-  protected EntityKeyImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-          throws IOException, JsonProcessingException {
-
-    final EntityKeyImpl entityKey = new EntityKeyImpl();
-
-    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-      final JsonToken token = jp.getCurrentToken();
-
-      if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
-        jp.nextToken();
-        entityKey.getPropertyRefs().add(jp.readValueAs( PropertyRefImpl.class));
-      }
-    }
-
-    return entityKey;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntitySetDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntitySetDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntitySetDeserializer.java
deleted file mode 100644
index a5fa924..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntitySetDeserializer.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import java.io.IOException;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.odata4.client.core.edm.xml.AbstractEntitySet;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.AnnotationImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.NavigationPropertyBindingImpl;
-import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-
-public class EntitySetDeserializer extends AbstractEdmDeserializer<AbstractEntitySet> {
-
-  @Override
-  protected AbstractEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-          throws IOException, JsonProcessingException {
-
-    final AbstractEntitySet entitySet = ODataServiceVersion.V30 == client.getServiceVersion()
-            ? new org.apache.olingo.odata4.client.core.edm.xml.v3.EntitySetImpl()
-            : new org.apache.olingo.odata4.client.core.edm.xml.v4.EntitySetImpl();
-
-    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-      final JsonToken token = jp.getCurrentToken();
-      if (token == JsonToken.FIELD_NAME) {
-        if ("Name".equals(jp.getCurrentName())) {
-          entitySet.setName(jp.nextTextValue());
-        } else if ("EntityType".equals(jp.getCurrentName())) {
-          entitySet.setEntityType(jp.nextTextValue());
-        } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntitySetImpl) entitySet).
-                  setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntitySetImpl) entitySet).
-                  getNavigationPropertyBindings().add(
-                          jp.readValueAs(NavigationPropertyBindingImpl.class));
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntitySetImpl) entitySet).
-                  setAnnotation(jp.readValueAs(AnnotationImpl.class));
-        }
-      }
-    }
-
-    return entitySet;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityTypeDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityTypeDeserializer.java
deleted file mode 100644
index 610b751..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EntityTypeDeserializer.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import java.io.IOException;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.odata4.client.core.edm.xml.AbstractEntityType;
-import org.apache.olingo.odata4.client.core.edm.xml.EntityKeyImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.AnnotationImpl;
-import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-
-public class EntityTypeDeserializer extends AbstractEdmDeserializer<AbstractEntityType> {
-
-  @Override
-  protected AbstractEntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-          throws IOException, JsonProcessingException {
-
-    final AbstractEntityType entityType = ODataServiceVersion.V30 == client.getServiceVersion()
-            ? new org.apache.olingo.odata4.client.core.edm.xml.v3.EntityTypeImpl()
-            : new org.apache.olingo.odata4.client.core.edm.xml.v4.EntityTypeImpl();
-
-    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-      final JsonToken token = jp.getCurrentToken();
-      if (token == JsonToken.FIELD_NAME) {
-        if ("Name".equals(jp.getCurrentName())) {
-          entityType.setName(jp.nextTextValue());
-        } else if ("Abstract".equals(jp.getCurrentName())) {
-          entityType.setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("BaseType".equals(jp.getCurrentName())) {
-          entityType.setBaseType(jp.nextTextValue());
-        } else if ("OpenType".equals(jp.getCurrentName())) {
-          entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("HasStream".equals(jp.getCurrentName())) {
-          entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("Key".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          entityType.setKey(jp.readValueAs(EntityKeyImpl.class));
-        } else if ("Property".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          if (entityType instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.EntityTypeImpl) {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v3.EntityTypeImpl) entityType).
-                    getProperties().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl.class));
-          } else {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityTypeImpl) entityType).
-                    getProperties().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v4.PropertyImpl.class));
-          }
-        } else if ("NavigationProperty".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          if (entityType instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.EntityTypeImpl) {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v3.EntityTypeImpl) entityType).
-                    getNavigationProperties().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v3.NavigationPropertyImpl.class));
-          } else {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityTypeImpl) entityType).
-                    getNavigationProperties().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v4.NavigationPropertyImpl.class));
-          }
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EntityTypeImpl) entityType).
-                  setAnnotation(jp.readValueAs(AnnotationImpl.class));
-        }
-      }
-    }
-
-    return entityType;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EnumTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EnumTypeDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EnumTypeDeserializer.java
deleted file mode 100644
index 086d99c..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/EnumTypeDeserializer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import java.io.IOException;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.odata4.client.core.edm.xml.AbstractEnumType;
-import org.apache.olingo.odata4.client.core.edm.xml.v4.AnnotationImpl;
-import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-
-public class EnumTypeDeserializer extends AbstractEdmDeserializer<AbstractEnumType> {
-
-  @Override
-  protected AbstractEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-          throws IOException, JsonProcessingException {
-
-    final AbstractEnumType enumType = ODataServiceVersion.V30 == client.getServiceVersion()
-            ? new org.apache.olingo.odata4.client.core.edm.xml.v3.EnumTypeImpl()
-            : new org.apache.olingo.odata4.client.core.edm.xml.v4.EnumTypeImpl();
-
-    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-      final JsonToken token = jp.getCurrentToken();
-      if (token == JsonToken.FIELD_NAME) {
-        if ("Name".equals(jp.getCurrentName())) {
-          enumType.setName(jp.nextTextValue());
-        } else if ("UnderlyingType".equals(jp.getCurrentName())) {
-          enumType.setUnderlyingType(jp.nextTextValue());
-        } else if ("IsFlags".equals(jp.getCurrentName())) {
-          enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
-        } else if ("Member".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          if (enumType instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.EnumTypeImpl) {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v3.EnumTypeImpl) enumType).
-                    getMembers().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v3.MemberImpl.class));
-          } else {
-            ((org.apache.olingo.odata4.client.core.edm.xml.v4.EnumTypeImpl) enumType).
-                    getMembers().add(jp.readValueAs(
-                                    org.apache.olingo.odata4.client.core.edm.xml.v4.MemberImpl.class));
-          }
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          ((org.apache.olingo.odata4.client.core.edm.xml.v4.EnumTypeImpl) enumType).
-                  setAnnotation(jp.readValueAs(AnnotationImpl.class));
-        }
-      }
-    }
-
-    return enumType;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/InjectableSerializerProvider.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/InjectableSerializerProvider.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/InjectableSerializerProvider.java
deleted file mode 100644
index fc37c83..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/InjectableSerializerProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider;
-import com.fasterxml.jackson.databind.ser.SerializerFactory;
-
-class InjectableSerializerProvider extends DefaultSerializerProvider {
-
-  private static final long serialVersionUID = 3432260063063739646L;
-
-  public InjectableSerializerProvider(
-          final SerializerProvider src, final SerializationConfig config, final SerializerFactory factory) {
-
-    super(src, config, factory);
-  }
-
-  @Override
-  public InjectableSerializerProvider createInstance(
-          final SerializationConfig config, final SerializerFactory factory) {
-
-    return this;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3BinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3BinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3BinderImpl.java
deleted file mode 100644
index b470709..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3BinderImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import org.apache.olingo.odata4.client.core.ODataV3ClientImpl;
-import org.apache.olingo.odata4.client.core.op.impl.AbstractODataBinder;
-
-public class ODataV3BinderImpl extends AbstractODataBinder {
-
-    private static final long serialVersionUID = 8970843539708952308L;
-
-    public ODataV3BinderImpl(final ODataV3ClientImpl client) {
-        super(client);
-    }
-
-//    @Override
-//    protected EdmType newEdmType(final String expression) {
-//        return new EdmV3Type(expression);
-//    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3DeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3DeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3DeserializerImpl.java
deleted file mode 100644
index a16f03e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3DeserializerImpl.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import java.io.IOException;
-import java.io.InputStream;
-import org.apache.olingo.odata4.client.api.ODataClient;
-import org.apache.olingo.odata4.client.api.data.ServiceDocument;
-import org.apache.olingo.odata4.client.api.format.ODataFormat;
-import org.apache.olingo.odata4.client.api.op.ODataV3Deserializer;
-import org.apache.olingo.odata4.client.core.data.v3.JSONServiceDocumentImpl;
-import org.apache.olingo.odata4.client.core.data.v4.XMLServiceDocumentImpl;
-import org.apache.olingo.odata4.client.core.op.impl.AbstractODataDeserializer;
-import org.apache.olingo.odata4.client.core.edm.xml.v3.EdmxImpl;
-import org.apache.olingo.odata4.client.core.edm.xml.v3.XMLMetadataImpl;
-
-public class ODataV3DeserializerImpl extends AbstractODataDeserializer implements ODataV3Deserializer {
-
-  private static final long serialVersionUID = -8221085862548914611L;
-
-  public ODataV3DeserializerImpl(final ODataClient client) {
-    super(client);
-  }
-
-  @Override
-  public XMLMetadataImpl toMetadata(final InputStream input) {
-    try {
-      return new XMLMetadataImpl(getXmlMapper().readValue(input, EdmxImpl.class));
-    } catch (Exception e) {
-      throw new IllegalArgumentException("Could not parse as Edmx document", e);
-    }
-  }
-
-  @Override
-  public ServiceDocument toServiceDocument(final InputStream input, final ODataFormat format) {
-    try {
-      return format == ODataFormat.XML
-              ? getXmlMapper().readValue(input, XMLServiceDocumentImpl.class)
-              : getObjectMapper().readValue(input, JSONServiceDocumentImpl.class);
-    } catch (IOException e) {
-      throw new IllegalArgumentException("Could not parse Service Document", e);
-    }
-  }
-
-//    @Override
-//    protected JSONEntry toJSONEntry(final InputStream input) {
-//        try {
-//            return getObjectMapper().readValue(input, JSONEntry.class);
-//        } catch (IOException e) {
-//            throw new IllegalArgumentException("While deserializing JSON entry", e);
-//        }
-//    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3ReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3ReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3ReaderImpl.java
deleted file mode 100644
index 8e2991b..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3ReaderImpl.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import java.io.InputStream;
-import org.apache.olingo.odata4.client.api.domain.ODataServiceDocument;
-import org.apache.olingo.odata4.client.api.format.ODataFormat;
-import org.apache.olingo.odata4.client.core.ODataV3ClientImpl;
-import org.apache.olingo.odata4.client.core.edm.EdmClientImpl;
-import org.apache.olingo.odata4.client.core.op.impl.AbstractODataReader;
-import org.apache.olingo.odata4.commons.api.edm.Edm;
-
-public class ODataV3ReaderImpl extends AbstractODataReader {
-
-  private static final long serialVersionUID = -2481293269536406956L;
-
-  public ODataV3ReaderImpl(final ODataV3ClientImpl client) {
-    super(client);
-  }
-
-  @Override
-  public Edm readMetadata(final InputStream input) {
-    return new EdmClientImpl(client.getDeserializer().toMetadata(input));
-  }
-
-  @Override
-  public ODataServiceDocument readServiceDocument(final InputStream input, final ODataFormat format) {
-    return ((ODataV3ClientImpl) client).getBinder().getODataServiceDocument(
-            ((ODataV3ClientImpl) client).getDeserializer().toServiceDocument(input, format));
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3SerializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3SerializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3SerializerImpl.java
deleted file mode 100644
index 76f6b8f..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV3SerializerImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import org.apache.olingo.odata4.client.api.ODataClient;
-import org.apache.olingo.odata4.client.core.op.impl.AbstractODataSerializer;
-
-public class ODataV3SerializerImpl extends AbstractODataSerializer {
-
-  private static final long serialVersionUID = -8861908250297989806L;
-
-  public ODataV3SerializerImpl(final ODataClient client) {
-    super(client);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/897db8ef/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV4BinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV4BinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV4BinderImpl.java
deleted file mode 100644
index a9164b9..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/odata4/client/core/op/impl/ODataV4BinderImpl.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.op.impl;
-
-import org.apache.olingo.odata4.client.api.data.ServiceDocument;
-import org.apache.olingo.odata4.client.api.data.ServiceDocumentItem;
-import org.apache.olingo.odata4.client.api.domain.ODataServiceDocument;
-import org.apache.olingo.odata4.client.core.ODataV4ClientImpl;
-import org.apache.olingo.odata4.client.core.op.impl.AbstractODataBinder;
-import org.apache.olingo.odata4.client.core.uri.URIUtils;
-
-public class ODataV4BinderImpl extends AbstractODataBinder {
-
-  private static final long serialVersionUID = -6371110655960799393L;
-
-  public ODataV4BinderImpl(final ODataV4ClientImpl client) {
-    super(client);
-  }
-
-//    @Override
-//    protected EdmType newEdmType(final String expression) {
-//        return new EdmV4Type(expression);
-//    }
-  @Override
-  public ODataServiceDocument getODataServiceDocument(final ServiceDocument resource) {
-    final ODataServiceDocument serviceDocument = super.getODataServiceDocument(resource);
-
-    serviceDocument.setMetadataContext(URIUtils.getURI(resource.getBaseURI(), resource.getMetadataContext()));
-    serviceDocument.setMetadataETag(resource.getMetadataETag());
-
-    for (ServiceDocumentItem functionImport : resource.getFunctionImports()) {
-      serviceDocument.getFunctionImports().put(functionImport.getTitle(),
-              URIUtils.getURI(resource.getBaseURI(), functionImport.getHref()));
-    }
-    for (ServiceDocumentItem singleton : resource.getSingletons()) {
-      serviceDocument.getSingletons().put(singleton.getTitle(),
-              URIUtils.getURI(resource.getBaseURI(), singleton.getHref()));
-    }
-    for (ServiceDocumentItem sdoc : resource.getRelatedServiceDocuments()) {
-      serviceDocument.getRelatedServiceDocuments().put(sdoc.getTitle(),
-              URIUtils.getURI(resource.getBaseURI(), sdoc.getHref()));
-    }
-
-    return serviceDocument;
-  }
-}