You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by bu...@apache.org on 2015/02/16 09:56:49 UTC

svn commit: r940313 [2/2] - in /websites/staging/olingo/trunk/content: ./ doc/odata4/tutorials/od4_basic_read.html

Modified: websites/staging/olingo/trunk/content/doc/odata4/tutorials/od4_basic_read.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata4/tutorials/od4_basic_read.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata4/tutorials/od4_basic_read.html Mon Feb 16 08:56:49 2015
@@ -209,103 +209,116 @@ The processor receives, validates and de
 <p><img alt="Figure 2: Data model" src="er.png" /></p>
 <p>OData services are described in terms of an Entity Data Model (EDM). To do so, the first step is to provide such an EDM. In this basic tutorial, we will define a class that provides an EDM instance. The EDM will be used to determine the types of the entities, properties and so on. In addition, the service can deliver a service meta-document. As we have a static model we define constants for all top level elements of the schema. The data model is shown in figure 2 as entity relationship diagram.</p>
 <p>Create a new class called <code>CarsEdmProvider</code> that inherits from <code>EdmProvider</code></p>
-<p>package org.apache.odata2.server.sample.edmprovider;</p>
-<p>import org.apache.olingo.server.api.edm.provider.EdmProvider;</p>
-<p>public class CarsEdmProvider extends EdmProvider {</p>
-<p>// Service Namespace
-  public static final String NAMESPACE = "olingo.odata.sample";</p>
-<p>// EDM Container
-  public static final String CONTAINER_NAME = "Container";
-  public static final FullQualifiedName CONTAINER_FQN = new FullQualifiedName(NAMESPACE, CONTAINER_NAME);</p>
-<p>// Entity Types Names
-  public static final FullQualifiedName ET_CAR = new FullQualifiedName(NAMESPACE, "Car");
-  public static final FullQualifiedName ET_MANUFACTURER = new FullQualifiedName(NAMESPACE, "Manufacturer");</p>
-<p>// Complex Type Names
-  public static final FullQualifiedName CT_ADDRESS = new FullQualifiedName(NAMESPACE, "Address");</p>
-<p>// Entity Set Names
-  public static final String ES_CARS_NAME = "Cars";
-  public static final String ES_MANUFACTURER_NAME = "Manufacturers";</p>
+<div class="codehilite"><pre><span class="n">package</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">odata2</span><span class="p">.</span><span class="n">server</span><span class="p">.</span><span class="n">sample</span><span class="p">.</span><span class="n">edmprovider</span><span class="p">;</span>
+
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">server</span><span class="p">.</span><span class="n">api</span><span class="p">.</span><span class="n">edm</span><span class="p">.</span><span class="n">provider</span><span class="p">.</span><span class="n">EdmProvider</span><span class="p">;</span>
+
+<span class="n">public</span> <span class="n">class</span> <span class="n">CarsEdmProvider</span> <span class="n">extends</span> <span class="n">EdmProvider</span> <span class="p">{</span>
+
+<span class="o">//</span> <span class="n">Service</span> <span class="n">Namespace</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">String</span> <span class="n">NAMESPACE</span> <span class="p">=</span> &quot;<span class="n">olingo</span><span class="p">.</span><span class="n">odata</span><span class="p">.</span><span class="n">sample</span>&quot;<span class="p">;</span>
+
+<span class="o">//</span> <span class="n">EDM</span> <span class="n">Container</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">String</span> <span class="n">CONTAINER_NAME</span> <span class="p">=</span> &quot;<span class="n">Container</span>&quot;<span class="p">;</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">CONTAINER_FQN</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FullQualifiedName</span><span class="p">(</span><span class="n">NAMESPACE</span><span class="p">,</span> <span class="n">CONTAINER_NAME</span><span class="p">);</span>
+
+<span class="o">//</span> <span class="n">Entity</span> <span class="n">Types</span> <span class="n">Names</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">ET_CAR</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FullQualifiedName</span><span class="p">(</span><span class="n">NAMESPACE</span><span class="p">,</span> &quot;<span class="n">Car</span>&quot;<span class="p">);</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">ET_MANUFACTURER</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FullQualifiedName</span><span class="p">(</span><span class="n">NAMESPACE</span><span class="p">,</span> &quot;<span class="n">Manufacturer</span>&quot;<span class="p">);</span>
+
+<span class="o">//</span> <span class="n">Complex</span> <span class="n">Type</span> <span class="n">Names</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">CT_ADDRESS</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FullQualifiedName</span><span class="p">(</span><span class="n">NAMESPACE</span><span class="p">,</span> &quot;<span class="n">Address</span>&quot;<span class="p">);</span>
+
+<span class="o">//</span> <span class="n">Entity</span> <span class="n">Set</span> <span class="n">Names</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">String</span> <span class="n">ES_CARS_NAME</span> <span class="p">=</span> &quot;<span class="n">Cars</span>&quot;<span class="p">;</span>
+<span class="n">public</span> <span class="n">static</span> <span class="n">final</span> <span class="n">String</span> <span class="n">ES_MANUFACTURER_NAME</span> <span class="p">=</span> &quot;<span class="n">Manufacturers</span>&quot;<span class="p">;</span>
+</pre></div>
+
+
 <p>Implement <code>CarsEdmProvider.getSchemas(...)</code>. This method is used to retrieve the complete structural information in order to build the metadata document and the service document. The implementation makes use of other getter methods of this class for simplicity reasons. If a very performant way of building the whole structural information was required, other implementation strategies could be used.</p>
-<p>@Override
-  public List<Schema> getSchemas() throws ODataException {
-    List<Schema> schemas = new ArrayList<Schema>();
-    Schema schema = new Schema();
-    schema.setNamespace(NAMESPACE);</p>
-<div class="codehilite"><pre><span class="c1">// EntityTypes</span>
-<span class="n">List</span><span class="o">&lt;</span><span class="n">EntityType</span><span class="o">&gt;</span> <span class="n">entityTypes</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">EntityType</span><span class="o">&gt;</span><span class="p">();</span>
-<span class="n">entityTypes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntityType</span><span class="p">(</span><span class="no">ET_CAR</span><span class="p">));</span>
-<span class="n">entityTypes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntityType</span><span class="p">(</span><span class="no">ET_MANUFACTURER</span><span class="p">));</span>
-<span class="n">schema</span><span class="p">.</span><span class="n">setEntityTypes</span><span class="p">(</span><span class="n">entityTypes</span><span class="p">);</span>
-
-<span class="c1">// ComplexTypes</span>
-<span class="n">List</span><span class="o">&lt;</span><span class="n">ComplexType</span><span class="o">&gt;</span> <span class="n">complexTypes</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">ComplexType</span><span class="o">&gt;</span><span class="p">();</span>
-<span class="n">complexTypes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getComplexType</span><span class="p">(</span><span class="no">CT_ADDRESS</span><span class="p">));</span>
-<span class="n">schema</span><span class="p">.</span><span class="n">setComplexTypes</span><span class="p">(</span><span class="n">complexTypes</span><span class="p">);</span>
-
-<span class="c1">// EntityContainer</span>
-<span class="n">schema</span><span class="p">.</span><span class="n">setEntityContainer</span><span class="p">(</span><span class="n">getEntityContainer</span><span class="p">());</span>
-<span class="n">schemas</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">schema</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
+<span class="n">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">Schema</span><span class="o">&gt;</span> <span class="n">getSchemas</span><span class="p">()</span> <span class="n">throws</span> <span class="n">ODataException</span> <span class="p">{</span>
+  <span class="n">List</span><span class="o">&lt;</span><span class="n">Schema</span><span class="o">&gt;</span> <span class="n">schemas</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Schema</span><span class="o">&gt;</span><span class="p">();</span>
+  <span class="n">Schema</span> <span class="n">schema</span> <span class="p">=</span> <span class="n">new</span> <span class="n">Schema</span><span class="p">();</span>
+  <span class="n">schema</span><span class="p">.</span><span class="n">setNamespace</span><span class="p">(</span><span class="n">NAMESPACE</span><span class="p">);</span>
+
+  <span class="o">//</span> <span class="n">EntityTypes</span>
+  <span class="n">List</span><span class="o">&lt;</span><span class="n">EntityType</span><span class="o">&gt;</span> <span class="n">entityTypes</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">EntityType</span><span class="o">&gt;</span><span class="p">();</span>
+  <span class="n">entityTypes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntityType</span><span class="p">(</span><span class="n">ET_CAR</span><span class="p">));</span>
+  <span class="n">entityTypes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntityType</span><span class="p">(</span><span class="n">ET_MANUFACTURER</span><span class="p">));</span>
+  <span class="n">schema</span><span class="p">.</span><span class="n">setEntityTypes</span><span class="p">(</span><span class="n">entityTypes</span><span class="p">);</span>
+
+  <span class="o">//</span> <span class="n">ComplexTypes</span>
+  <span class="n">List</span><span class="o">&lt;</span><span class="n">ComplexType</span><span class="o">&gt;</span> <span class="n">complexTypes</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">ComplexType</span><span class="o">&gt;</span><span class="p">();</span>
+  <span class="n">complexTypes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getComplexType</span><span class="p">(</span><span class="n">CT_ADDRESS</span><span class="p">));</span>
+  <span class="n">schema</span><span class="p">.</span><span class="n">setComplexTypes</span><span class="p">(</span><span class="n">complexTypes</span><span class="p">);</span>
+
+  <span class="o">//</span> <span class="n">EntityContainer</span>
+  <span class="n">schema</span><span class="p">.</span><span class="n">setEntityContainer</span><span class="p">(</span><span class="n">getEntityContainer</span><span class="p">());</span>
+  <span class="n">schemas</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">schema</span><span class="p">);</span>
 
-<span class="k">return</span> <span class="n">schemas</span><span class="p">;</span>
+  <span class="k">return</span> <span class="n">schemas</span><span class="p">;</span>
+<span class="p">}</span>
 </pre></div>
 
 
-<p>}</p>
 <p>For example the method <code>CarsEdmProvider.getComplexType(...)</code> delivers the definition of a complex type, if there exists a complex type with the same full qualified name. The full qualified name was provided by the getSchemas method as mentioned above.</p>
-<p>public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
-    if (CT_ADDRESS.equals(complexTypeName)) {
-      return new ComplexType()
-        .setName(CT_ADDRESS.getName())
-        .setProperties(Arrays.asList(
-          new Property().setName("Street").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("City").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("ZipCode").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("Country").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())));
-    }
-    return null;
-  }</p>
+<div class="codehilite"><pre><span class="n">public</span> <span class="n">ComplexType</span> <span class="n">getComplexType</span><span class="p">(</span><span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">complexTypeName</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ODataException</span> <span class="p">{</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">CT_ADDRESS</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">complexTypeName</span><span class="p">))</span> <span class="p">{</span>
+    <span class="k">return</span> <span class="n">new</span> <span class="n">ComplexType</span><span class="p">()</span>
+      <span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="n">CT_ADDRESS</span><span class="p">.</span><span class="n">getName</span><span class="p">())</span>
+      <span class="p">.</span><span class="n">setProperties</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Street</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">City</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">ZipCode</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Country</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">())));</span>
+  <span class="p">}</span>
+  <span class="k">return</span> <span class="n">null</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+
 <p>The same principle is used for all other types.
 <code>CarsEdmProvider.getEntityType(...)</code> returns an Entity Type according to the full qualified name specified. The Entity Type holds all information about its structure like simple properties, complex properties, navigation properties and the definition of its key property (or properties)</p>
-<p>@Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
-    if (ET_CAR.equals(entityTypeName)) {
-      return new EntityType()
-        .setName(ET_CAR.getName())
-        .setKey(Arrays.asList(
-          new PropertyRef().setPropertyName("Id")))
-        .setProperties(Arrays.asList(
-          new Property().setName("Id").setType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName()),
-          new Property().setName("Model").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("ModelYear").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
-            .setMaxLength(4),
-          new Property().setName("Price").setType(EdmPrimitiveTypeKind.Decimal.getFullQualifiedName())
-            .setScale(2),
-          new Property().setName("Currency").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
-            .setMaxLength(3)
-        ))
-      .setNavigationProperties(Arrays.asList(
-        new NavigationProperty().setName("Manufacturer").setType(ET_MANUFACTURER)
-      ));</p>
-<div class="codehilite"><pre><span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">ET_MANUFACTURER</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">entityTypeName</span><span class="p">))</span> <span class="p">{</span>
-  <span class="k">return</span> <span class="n">new</span> <span class="n">EntityType</span><span class="p">()</span>
-    <span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="n">ET_MANUFACTURER</span><span class="p">.</span><span class="n">getName</span><span class="p">())</span>
-    <span class="p">.</span><span class="n">setKey</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span><span class="n">new</span> <span class="n">PropertyRef</span><span class="p">().</span><span class="n">setPropertyName</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">)))</span>
-    <span class="p">.</span><span class="n">setProperties</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
-      <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">Int16</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
-      <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Name</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
-      <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Address</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">CT_ADDRESS</span><span class="p">))</span>
-    <span class="p">)</span>
+<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
+<span class="n">public</span> <span class="n">EntityType</span> <span class="n">getEntityType</span><span class="p">(</span><span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">entityTypeName</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ODataException</span> <span class="p">{</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">ET_CAR</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">entityTypeName</span><span class="p">))</span> <span class="p">{</span>
+    <span class="k">return</span> <span class="n">new</span> <span class="n">EntityType</span><span class="p">()</span>
+      <span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="n">ET_CAR</span><span class="p">.</span><span class="n">getName</span><span class="p">())</span>
+      <span class="p">.</span><span class="n">setKey</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
+        <span class="n">new</span> <span class="n">PropertyRef</span><span class="p">().</span><span class="n">setPropertyName</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">)))</span>
+      <span class="p">.</span><span class="n">setProperties</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">Int16</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">())</span>
+          <span class="p">.</span><span class="n">setMaxLength</span><span class="p">(</span>4<span class="p">),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">Decimal</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">())</span>
+          <span class="p">.</span><span class="n">setScale</span><span class="p">(</span>2<span class="p">),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">())</span>
+          <span class="p">.</span><span class="n">setMaxLength</span><span class="p">(</span>3<span class="p">)</span>
+      <span class="p">))</span>
     <span class="p">.</span><span class="n">setNavigationProperties</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
-      <span class="n">new</span> <span class="n">NavigationProperty</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Cars</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">ET_CAR</span><span class="p">).</span><span class="n">setCollection</span><span class="p">(</span><span class="n">true</span><span class="p">)</span>
+      <span class="n">new</span> <span class="n">NavigationProperty</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Manufacturer</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">ET_MANUFACTURER</span><span class="p">)</span>
     <span class="p">));</span>
-<span class="p">}</span>
 
-<span class="k">return</span> <span class="n">null</span><span class="p">;</span>
-</pre></div>
+  <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">ET_MANUFACTURER</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">entityTypeName</span><span class="p">))</span> <span class="p">{</span>
+    <span class="k">return</span> <span class="n">new</span> <span class="n">EntityType</span><span class="p">()</span>
+      <span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="n">ET_MANUFACTURER</span><span class="p">.</span><span class="n">getName</span><span class="p">())</span>
+      <span class="p">.</span><span class="n">setKey</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span><span class="n">new</span> <span class="n">PropertyRef</span><span class="p">().</span><span class="n">setPropertyName</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">)))</span>
+      <span class="p">.</span><span class="n">setProperties</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">Int16</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Name</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">EdmPrimitiveTypeKind</span><span class="p">.</span><span class="n">String</span><span class="p">.</span><span class="n">getFullQualifiedName</span><span class="p">()),</span>
+        <span class="n">new</span> <span class="n">Property</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Address</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">CT_ADDRESS</span><span class="p">))</span>
+      <span class="p">)</span>
+      <span class="p">.</span><span class="n">setNavigationProperties</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="n">asList</span><span class="p">(</span>
+        <span class="n">new</span> <span class="n">NavigationProperty</span><span class="p">().</span><span class="n">setName</span><span class="p">(</span>&quot;<span class="n">Cars</span>&quot;<span class="p">).</span><span class="n">setType</span><span class="p">(</span><span class="n">ET_CAR</span><span class="p">).</span><span class="n">setCollection</span><span class="p">(</span><span class="n">true</span><span class="p">)</span>
+      <span class="p">));</span>
+  <span class="p">}</span>
 
+  <span class="k">return</span> <span class="n">null</span><span class="p">;</span>
+<span class="p">}</span>
 
-<p>}</p>
-<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
+<span class="p">@</span><span class="n">Override</span>
 <span class="n">public</span> <span class="n">EntitySet</span> <span class="n">getEntitySet</span><span class="p">(</span><span class="n">final</span> <span class="n">FullQualifiedName</span> <span class="n">entityContainer</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">entitySetName</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ODataException</span> <span class="p">{</span>
   <span class="k">if</span> <span class="p">(</span><span class="n">CONTAINER_FQN</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">entityContainer</span><span class="p">))</span> <span class="p">{</span>
     <span class="k">if</span> <span class="p">(</span><span class="n">ES_CARS_NAME</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">entitySetName</span><span class="p">))</span> <span class="p">{</span>
@@ -344,54 +357,59 @@ The processor receives, validates and de
 
 <p>Entities are not visible by default. To make them visible, we have to define a so called “EntityContainer”.
 Override the method <code>getEntityContainer(...)</code> and add the following code:</p>
-<p>@Override
-  public EntityContainer getEntityContainer() throws ODataException {
-    EntityContainer container = new EntityContainer();
-    container.setName(CONTAINER_FQN.getName());</p>
-<div class="codehilite"><pre><span class="c1">// EntitySets</span>
-<span class="n">List</span><span class="o">&lt;</span><span class="n">EntitySet</span><span class="o">&gt;</span> <span class="n">entitySets</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">EntitySet</span><span class="o">&gt;</span><span class="p">();</span>
-<span class="n">container</span><span class="p">.</span><span class="n">setEntitySets</span><span class="p">(</span><span class="n">entitySets</span><span class="p">);</span>
-<span class="n">entitySets</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntitySet</span><span class="p">(</span><span class="no">CONTAINER_FQN</span><span class="p">,</span> <span class="no">ES_CARS_NAME</span><span class="p">));</span>
-<span class="n">entitySets</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntitySet</span><span class="p">(</span><span class="no">CONTAINER_FQN</span><span class="p">,</span> <span class="no">ES_MANUFACTURER_NAME</span><span class="p">));</span>
-
-<span class="k">return</span> <span class="n">container</span><span class="p">;</span>
+<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
+<span class="n">public</span> <span class="n">EntityContainer</span> <span class="n">getEntityContainer</span><span class="p">()</span> <span class="n">throws</span> <span class="n">ODataException</span> <span class="p">{</span>
+  <span class="n">EntityContainer</span> <span class="n">container</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EntityContainer</span><span class="p">();</span>
+  <span class="n">container</span><span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="n">CONTAINER_FQN</span><span class="p">.</span><span class="n">getName</span><span class="p">());</span>
+
+  <span class="o">//</span> <span class="n">EntitySets</span>
+  <span class="n">List</span><span class="o">&lt;</span><span class="n">EntitySet</span><span class="o">&gt;</span> <span class="n">entitySets</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">EntitySet</span><span class="o">&gt;</span><span class="p">();</span>
+  <span class="n">container</span><span class="p">.</span><span class="n">setEntitySets</span><span class="p">(</span><span class="n">entitySets</span><span class="p">);</span>
+  <span class="n">entitySets</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntitySet</span><span class="p">(</span><span class="n">CONTAINER_FQN</span><span class="p">,</span> <span class="n">ES_CARS_NAME</span><span class="p">));</span>
+  <span class="n">entitySets</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">getEntitySet</span><span class="p">(</span><span class="n">CONTAINER_FQN</span><span class="p">,</span> <span class="n">ES_MANUFACTURER_NAME</span><span class="p">));</span>
+
+  <span class="k">return</span> <span class="n">container</span><span class="p">;</span>
+<span class="p">}</span>
+
+
+<span class="p">@</span><span class="n">Override</span>
+<span class="n">public</span> <span class="n">EntityContainerInfo</span> <span class="n">getEntityContainerInfo</span><span class="p">(</span><span class="n">final</span> <span class="n">FullQualifiedNam</span><span class="p">,</span> <span class="n">entityContainerName</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ODataException</span> <span class="p">{</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">entityContainerName</span> <span class="o">==</span> <span class="n">null</span> <span class="o">||</span> <span class="n">CONTAINER_FQN</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">entityContainerName</span><span class="p">))</span> <span class="p">{</span>
+    <span class="k">return</span> <span class="n">new</span> <span class="n">EntityContainerInfo</span><span class="p">().</span><span class="n">setContainerName</span><span class="p">(</span><span class="n">CONTAINER_FQN</span><span class="p">);</span>
+  <span class="p">}</span>
+  <span class="k">return</span> <span class="n">null</span><span class="p">;</span>
+<span class="p">}</span>
 </pre></div>
 
 
-<p>}</p>
-<p>@Override
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedNam, entityContainerName) throws ODataException {
-    if (entityContainerName == null || CONTAINER_FQN.equals(entityContainerName)) {
-      return new EntityContainerInfo().setContainerName(CONTAINER_FQN);
-    }
-    return null;
-  }</p>
 <h5 id="servlet">Servlet</h5>
-<p>As descripted in project setup, the web projects calls a servlet. Within the servlet the EDM provider has to be loaded. Create a new class CarsServlet which extends HttpServlet.</p>
+<p>As described in project setup, the web projects calls a servlet. Within the servlet the EDM provider has to be loaded. Create a new class CarsServlet which extends HttpServlet.</p>
 <p>In the following steps a processor and a data provider will be created.  Currently there is not processor being registered, so the default processor will be used.  The default processor is been able to display the service document and the metadata document also.</p>
 <p>Insert the following code.</p>
-<p>package org.apache.olingo.server.sample;</p>
-<p>public class CarsServlet extends HttpServlet {</p>
-<div class="codehilite"><pre><span class="n">private</span> <span class="n">static</span> <span class="n">final</span> <span class="n">long</span> <span class="n">serialVersionUID</span> <span class="p">=</span> 1<span class="n">L</span><span class="p">;</span>
-<span class="n">private</span> <span class="n">static</span> <span class="n">final</span> <span class="n">Logger</span> <span class="n">LOG</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">CarsServlet</span><span class="p">.</span><span class="n">class</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="n">package</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">server</span><span class="p">.</span><span class="n">sample</span><span class="p">;</span>
 
-<span class="p">@</span><span class="n">Override</span>
-<span class="n">protected</span> <span class="n">void</span> <span class="n">service</span><span class="p">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="p">,</span> <span class="n">HttpServletResponse</span> <span class="n">resp</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ServletException</span><span class="p">,</span> <span class="n">IOException</span> <span class="p">{</span>
-  <span class="k">try</span> <span class="p">{</span>
-    <span class="n">OData</span> <span class="n">odata</span> <span class="p">=</span> <span class="n">OData</span><span class="p">.</span><span class="n">newInstance</span><span class="p">();</span>
-    <span class="n">ServiceMetadata</span> <span class="n">edm</span> <span class="p">=</span> <span class="n">odata</span><span class="p">.</span><span class="n">createServiceMetadata</span><span class="p">(</span><span class="n">new</span> <span class="n">CarsEdmProvider</span><span class="p">(),</span> <span class="n">new</span>    <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">EdmxReference</span><span class="o">&gt;</span><span class="p">());</span>
-    <span class="n">ODataHttpHandler</span> <span class="n">handler</span> <span class="p">=</span> <span class="n">odata</span><span class="p">.</span><span class="n">createHandler</span><span class="p">(</span><span class="n">edm</span><span class="p">);</span>
+<span class="n">public</span> <span class="n">class</span> <span class="n">CarsServlet</span> <span class="n">extends</span> <span class="n">HttpServlet</span> <span class="p">{</span>
 
-    <span class="n">handler</span><span class="p">.</span><span class="n">process</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">resp</span><span class="p">);</span>
-  <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">RuntimeException</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">LOG</span><span class="p">.</span><span class="n">error</span><span class="p">(</span>&quot;<span class="n">Server</span> <span class="n">Error</span>&quot;<span class="p">,</span> <span class="n">e</span><span class="p">);</span>
-    <span class="n">throw</span> <span class="n">new</span> <span class="n">ServletException</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
+  <span class="n">private</span> <span class="n">static</span> <span class="n">final</span> <span class="n">long</span> <span class="n">serialVersionUID</span> <span class="p">=</span> 1<span class="n">L</span><span class="p">;</span>
+  <span class="n">private</span> <span class="n">static</span> <span class="n">final</span> <span class="n">Logger</span> <span class="n">LOG</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">CarsServlet</span><span class="p">.</span><span class="n">class</span><span class="p">);</span>
+
+  <span class="p">@</span><span class="n">Override</span>
+  <span class="n">protected</span> <span class="n">void</span> <span class="n">service</span><span class="p">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="p">,</span> <span class="n">HttpServletResponse</span> <span class="n">resp</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ServletException</span><span class="p">,</span> <span class="n">IOException</span> <span class="p">{</span>
+    <span class="k">try</span> <span class="p">{</span>
+      <span class="n">OData</span> <span class="n">odata</span> <span class="p">=</span> <span class="n">OData</span><span class="p">.</span><span class="n">newInstance</span><span class="p">();</span>
+      <span class="n">ServiceMetadata</span> <span class="n">edm</span> <span class="p">=</span> <span class="n">odata</span><span class="p">.</span><span class="n">createServiceMetadata</span><span class="p">(</span><span class="n">new</span> <span class="n">CarsEdmProvider</span><span class="p">(),</span> <span class="n">new</span>  <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">EdmxReference</span><span class="o">&gt;</span><span class="p">());</span>
+      <span class="n">ODataHttpHandler</span> <span class="n">handler</span> <span class="p">=</span> <span class="n">odata</span><span class="p">.</span><span class="n">createHandler</span><span class="p">(</span><span class="n">edm</span><span class="p">);</span>
+
+      <span class="n">handler</span><span class="p">.</span><span class="n">process</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">resp</span><span class="p">);</span>
+    <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">RuntimeException</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
+      <span class="n">LOG</span><span class="p">.</span><span class="n">error</span><span class="p">(</span>&quot;<span class="n">Server</span> <span class="n">Error</span>&quot;<span class="p">,</span> <span class="n">e</span><span class="p">);</span>
+      <span class="n">throw</span> <span class="n">new</span> <span class="n">ServletException</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
+    <span class="p">}</span>
   <span class="p">}</span>
 <span class="p">}</span>
 </pre></div>
 
 
-<p>}</p>
 <h5 id="conclusion">Conclusion</h5>
 <p>Conclusion
 After the implementation of the EDM Provider the web application can be executed to show the Service Document and the Metadata Document.</p>
@@ -406,139 +424,147 @@ After the implementation of the EDM Prov
 <p>In the next steps we will implement read access to the Car and Manufacturer entries and the read access to the Cars and Manufacturers feed. As we need some basis for sample data we create a very simple data store which contains the data as well as access methods to serve the required data.</p>
 <p>We will implement some helper methods to provide a bunch of sample data.</p>
 <p>Create a new class <code>DataProvider</code>.</p>
-<p>package org.apache.olingo.server.sample.data;</p>
-<p>import java.util.ArrayList;
-  import java.util.HashMap;
-  import java.util.List;
-  import java.util.Map;</p>
-<p>import org.apache.olingo.commons.api.data.EntitySet;
-  import org.apache.olingo.commons.api.data.Property;
-  import org.apache.olingo.commons.api.data.ValueType;
-  import org.apache.olingo.commons.core.data.EntityImpl;
-  import org.apache.olingo.commons.core.data.EntitySetImpl;
-  import org.apache.olingo.commons.core.data.PropertyImpl;</p>
-<p>public class DataProvider {</p>
-<div class="codehilite"><pre><span class="n">private</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span> <span class="n">EntitySet</span><span class="o">&gt;</span> <span class="n">data</span><span class="p">;</span>
-
-<span class="n">public</span> <span class="n">DataProvider</span><span class="p">()</span> <span class="p">{</span>
-  <span class="n">data</span> <span class="p">=</span> <span class="n">new</span> <span class="n">HashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span> <span class="n">EntitySet</span><span class="o">&gt;</span><span class="p">();</span>
-  <span class="n">data</span><span class="p">.</span><span class="n">put</span><span class="p">(</span>&quot;<span class="n">Cars</span>&quot;<span class="p">,</span> <span class="n">createCars</span><span class="p">());</span>
-  <span class="n">data</span><span class="p">.</span><span class="n">put</span><span class="p">(</span>&quot;<span class="n">Manufacturers</span>&quot;<span class="p">,</span> <span class="n">createManufacturers</span><span class="p">());</span>
-<span class="p">}</span>
-
-<span class="n">private</span> <span class="n">EntitySet</span> <span class="n">createCars</span><span class="p">()</span> <span class="p">{</span>
-  <span class="n">EntitySet</span> <span class="n">entitySet</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EntitySetImpl</span><span class="p">();</span>
-
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 1<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F1</span> <span class="n">W03</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2012&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 189189<span class="p">.</span>43<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
-
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 2<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F1</span> <span class="n">W04</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2013&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 199999<span class="p">.</span>99<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
-
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 3<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F2012</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2012&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 137285<span class="p">.</span>33<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
-
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 4<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F2013</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2013&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 145285<span class="p">.</span>00<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
-
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 5<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F1</span> <span class="n">W02</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2011&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 167189<span class="p">.</span>00<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
+<div class="codehilite"><pre><span class="n">package</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">server</span><span class="p">.</span><span class="n">sample</span><span class="p">.</span><span class="n">data</span><span class="p">;</span>
 
-    <span class="k">return</span> <span class="n">entitySet</span><span class="p">;</span>
-<span class="p">}</span>
+<span class="n">import</span> <span class="n">java</span><span class="p">.</span><span class="n">util</span><span class="p">.</span><span class="n">ArrayList</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">java</span><span class="p">.</span><span class="n">util</span><span class="p">.</span><span class="n">HashMap</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">java</span><span class="p">.</span><span class="n">util</span><span class="p">.</span><span class="n">List</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">java</span><span class="p">.</span><span class="n">util</span><span class="p">.</span><span class="n">Map</span><span class="p">;</span>
 
-<span class="n">private</span> <span class="n">EntitySet</span> <span class="n">createManufacturers</span><span class="p">()</span> <span class="p">{</span>
-    <span class="n">EntitySet</span> <span class="n">entitySet</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EntitySetImpl</span><span class="p">();</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">commons</span><span class="p">.</span><span class="n">api</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">EntitySet</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">commons</span><span class="p">.</span><span class="n">api</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">Property</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">commons</span><span class="p">.</span><span class="n">api</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">ValueType</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">commons</span><span class="p">.</span><span class="n">core</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">EntityImpl</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">commons</span><span class="p">.</span><span class="n">core</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">EntitySetImpl</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span><span class="p">.</span><span class="n">commons</span><span class="p">.</span><span class="n">core</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">PropertyImpl</span><span class="p">;</span>
 
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 1<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Name</span>&quot;<span class="p">,</span> &quot;<span class="n">Star</span> <span class="n">Powered</span> <span class="n">Racing</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createAddress</span><span class="p">(</span>&quot;<span class="n">Star</span> <span class="n">Street</span> 137&quot;<span class="p">,</span> &quot;<span class="n">Stuttgart</span>&quot;<span class="p">,</span> &quot;70173&quot;<span class="p">,</span> &quot;<span class="n">Germany</span>&quot;<span class="p">)));</span>
+<span class="n">public</span> <span class="n">class</span> <span class="n">DataProvider</span> <span class="p">{</span>
 
-    <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 2<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Name</span>&quot;<span class="p">,</span> &quot;<span class="n">Horse</span> <span class="n">Powered</span> <span class="n">Racing</span>&quot;<span class="p">))</span>
-        <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createAddress</span><span class="p">(</span>&quot;<span class="n">Horse</span> <span class="n">Street</span> 1&quot;<span class="p">,</span> &quot;<span class="n">Maranello</span>&quot;<span class="p">,</span> &quot;41053&quot;<span class="p">,</span> &quot;<span class="n">Italy</span>&quot;<span class="p">)));</span>
+  <span class="n">private</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span> <span class="n">EntitySet</span><span class="o">&gt;</span> <span class="n">data</span><span class="p">;</span>
 
-    <span class="k">return</span> <span class="n">entitySet</span><span class="p">;</span>
-<span class="p">}</span>
+  <span class="n">public</span> <span class="n">DataProvider</span><span class="p">()</span> <span class="p">{</span>
+    <span class="n">data</span> <span class="p">=</span> <span class="n">new</span> <span class="n">HashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span> <span class="n">EntitySet</span><span class="o">&gt;</span><span class="p">();</span>
+    <span class="n">data</span><span class="p">.</span><span class="n">put</span><span class="p">(</span>&quot;<span class="n">Cars</span>&quot;<span class="p">,</span> <span class="n">createCars</span><span class="p">());</span>
+    <span class="n">data</span><span class="p">.</span><span class="n">put</span><span class="p">(</span>&quot;<span class="n">Manufacturers</span>&quot;<span class="p">,</span> <span class="n">createManufacturers</span><span class="p">());</span>
+  <span class="p">}</span>
 
-<span class="n">private</span> <span class="n">Property</span> <span class="n">createAddress</span><span class="p">(</span><span class="n">final</span> <span class="n">String</span> <span class="n">street</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">city</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">zipCode</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">country</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">List</span><span class="o">&lt;</span><span class="n">Property</span><span class="o">&gt;</span> <span class="n">addressProperties</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Property</span><span class="o">&gt;</span><span class="p">();</span>
+  <span class="n">private</span> <span class="n">EntitySet</span> <span class="n">createCars</span><span class="p">()</span> <span class="p">{</span>
+    <span class="n">EntitySet</span> <span class="n">entitySet</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EntitySetImpl</span><span class="p">();</span>
 
-    <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Street</span>&quot;<span class="p">,</span> <span class="n">street</span><span class="p">));</span>
-    <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">City</span>&quot;<span class="p">,</span> <span class="n">city</span><span class="p">));</span>
-    <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ZipCode</span>&quot;<span class="p">,</span> <span class="n">zipCode</span><span class="p">));</span>
-    <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Country</span>&quot;<span class="p">,</span> <span class="n">country</span><span class="p">));</span>
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 1<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F1</span> <span class="n">W03</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2012&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 189189<span class="p">.</span>43<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
+
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 2<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F1</span> <span class="n">W04</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2013&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 199999<span class="p">.</span>99<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
+
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 3<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F2012</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2012&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 137285<span class="p">.</span>33<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
+
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 4<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F2013</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2013&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 145285<span class="p">.</span>00<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
+
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 5<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Model</span>&quot;<span class="p">,</span> &quot;<span class="n">F1</span> <span class="n">W02</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ModelYear</span>&quot;<span class="p">,</span> &quot;2011&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Price</span>&quot;<span class="p">,</span> 167189<span class="p">.</span>00<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Currency</span>&quot;<span class="p">,</span> &quot;<span class="n">EUR</span>&quot;<span class="p">)));</span>
+
+      <span class="k">return</span> <span class="n">entitySet</span><span class="p">;</span>
+  <span class="p">}</span>
+
+  <span class="n">private</span> <span class="n">EntitySet</span> <span class="n">createManufacturers</span><span class="p">()</span> <span class="p">{</span>
+      <span class="n">EntitySet</span> <span class="n">entitySet</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EntitySetImpl</span><span class="p">();</span>
+
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 1<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Name</span>&quot;<span class="p">,</span> &quot;<span class="n">Star</span> <span class="n">Powered</span> <span class="n">Racing</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createAddress</span><span class="p">(</span>&quot;<span class="n">Star</span> <span class="n">Street</span> 137&quot;<span class="p">,</span> &quot;<span class="n">Stuttgart</span>&quot;<span class="p">,</span> &quot;70173&quot;<span class="p">,</span> &quot;<span class="n">Germany</span>&quot;<span class="p">)));</span>
+
+      <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">().</span><span class="n">add</span><span class="p">(</span><span class="n">new</span> <span class="n">EntityImpl</span><span class="p">()</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Id</span>&quot;<span class="p">,</span> 2<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Name</span>&quot;<span class="p">,</span> &quot;<span class="n">Horse</span> <span class="n">Powered</span> <span class="n">Racing</span>&quot;<span class="p">))</span>
+          <span class="p">.</span><span class="n">addProperty</span><span class="p">(</span><span class="n">createAddress</span><span class="p">(</span>&quot;<span class="n">Horse</span> <span class="n">Street</span> 1&quot;<span class="p">,</span> &quot;<span class="n">Maranello</span>&quot;<span class="p">,</span> &quot;41053&quot;<span class="p">,</span> &quot;<span class="n">Italy</span>&quot;<span class="p">)));</span>
+
+      <span class="k">return</span> <span class="n">entitySet</span><span class="p">;</span>
+  <span class="p">}</span>
+
+  <span class="n">private</span> <span class="n">Property</span> <span class="n">createAddress</span><span class="p">(</span><span class="n">final</span> <span class="n">String</span> <span class="n">street</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">city</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">zipCode</span><span class="p">,</span> <span class="n">final</span> <span class="n">String</span> <span class="n">country</span><span class="p">)</span> <span class="p">{</span>
+      <span class="n">List</span><span class="o">&lt;</span><span class="n">Property</span><span class="o">&gt;</span> <span class="n">addressProperties</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Property</span><span class="o">&gt;</span><span class="p">();</span>
+
+      <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Street</span>&quot;<span class="p">,</span> <span class="n">street</span><span class="p">));</span>
+      <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">City</span>&quot;<span class="p">,</span> <span class="n">city</span><span class="p">));</span>
+      <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">ZipCode</span>&quot;<span class="p">,</span> <span class="n">zipCode</span><span class="p">));</span>
+      <span class="n">addressProperties</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">createPrimitive</span><span class="p">(</span>&quot;<span class="n">Country</span>&quot;<span class="p">,</span> <span class="n">country</span><span class="p">));</span>
 
-    <span class="k">return</span> <span class="n">new</span> <span class="n">PropertyImpl</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> &quot;<span class="n">Address</span>&quot;<span class="p">,</span> <span class="n">ValueType</span><span class="p">.</span><span class="n">COMPLEX</span><span class="p">,</span> <span class="n">addressProperties</span><span class="p">);</span>
-  <span class="p">}</span>
+      <span class="k">return</span> <span class="n">new</span> <span class="n">PropertyImpl</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> &quot;<span class="n">Address</span>&quot;<span class="p">,</span> <span class="n">ValueType</span><span class="p">.</span><span class="n">COMPLEX</span><span class="p">,</span> <span class="n">addressProperties</span><span class="p">);</span>
+    <span class="p">}</span>
 
-<span class="n">private</span> <span class="n">Property</span> <span class="n">createPrimitive</span><span class="p">(</span><span class="n">final</span> <span class="n">String</span> <span class="n">name</span><span class="p">,</span> <span class="n">final</span> <span class="n">Object</span> <span class="n">value</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">return</span> <span class="n">new</span> <span class="n">PropertyImpl</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ValueType</span><span class="p">.</span><span class="n">PRIMITIVE</span><span class="p">,</span> <span class="n">value</span><span class="p">);</span>
-  <span class="p">}</span>
+  <span class="n">private</span> <span class="n">Property</span> <span class="n">createPrimitive</span><span class="p">(</span><span class="n">final</span> <span class="n">String</span> <span class="n">name</span><span class="p">,</span> <span class="n">final</span> <span class="n">Object</span> <span class="n">value</span><span class="p">)</span> <span class="p">{</span>
+      <span class="k">return</span> <span class="n">new</span> <span class="n">PropertyImpl</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ValueType</span><span class="p">.</span><span class="n">PRIMITIVE</span><span class="p">,</span> <span class="n">value</span><span class="p">);</span>
+    <span class="p">}</span>
+<span class="p">}</span>
 </pre></div>
 
 
-<p>}</p>
 <p>To access the data, we implement two helper methods.</p>
-<p>public EntitySet readAll(EdmEntitySet edmEntitySet) {
-      return data.get(edmEntitySet.getName());
-  }</p>
+<div class="codehilite"><pre><span class="n">public</span> <span class="n">EntitySet</span> <span class="n">readAll</span><span class="p">(</span><span class="n">EdmEntitySet</span> <span class="n">edmEntitySet</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">return</span> <span class="n">data</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="n">edmEntitySet</span><span class="p">.</span><span class="n">getName</span><span class="p">());</span>
+<span class="p">}</span>
+</pre></div>
+
+
 <p>The argument <code>edmEntitySet</code> will be provided by the URI parser. Further details can found in the next chapter (See processor implementation).  It contains information about the requested entity set. (e. g. name, type, navigation properties, …).</p>
-<p>public Entity read(final EdmEntitySet edmEntitySet, final List<UriParameter> keys) throws DataProviderException {
-    final EdmEntityType entityType = edmEntitySet.getEntityType();
-    final EntitySet entitySet = readAll(edmEntitySet);</p>
-<div class="codehilite"><pre><span class="k">if</span> <span class="p">(</span><span class="n">entitySet</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span>
-  <span class="k">return</span> <span class="n">null</span><span class="p">;</span>
-<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-  <span class="k">try</span> <span class="p">{</span>
-    <span class="k">for</span> <span class="p">(</span><span class="n">final</span> <span class="n">Entity</span> <span class="n">entity</span> <span class="p">:</span> <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">())</span> <span class="p">{</span>
-      <span class="n">boolean</span> <span class="n">found</span> <span class="p">=</span> <span class="n">true</span><span class="p">;</span>
-      <span class="k">for</span> <span class="p">(</span><span class="n">final</span> <span class="n">UriParameter</span> <span class="n">key</span> <span class="p">:</span> <span class="n">keys</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">final</span> <span class="n">EdmProperty</span> <span class="n">property</span> <span class="p">=</span> <span class="p">(</span><span class="n">EdmProperty</span><span class="p">)</span> <span class="n">entityType</span><span class="p">.</span><span class="n">getProperty</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="n">getName</span><span class="p">());</span>
-        <span class="n">final</span> <span class="n">EdmPrimitiveType</span> <span class="n">type</span> <span class="p">=</span> <span class="p">(</span><span class="n">EdmPrimitiveType</span><span class="p">)</span> <span class="n">property</span><span class="p">.</span><span class="n">getType</span><span class="p">();</span>
-
-        <span class="k">if</span> <span class="p">(</span>!<span class="n">type</span><span class="p">.</span><span class="n">valueToString</span><span class="p">(</span><span class="n">entity</span><span class="p">.</span><span class="n">getProperty</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="n">getName</span><span class="p">()).</span><span class="n">getValue</span><span class="p">(),</span> <span class="n">property</span><span class="p">.</span><span class="n">isNullable</span><span class="p">(),</span>
-            <span class="n">property</span><span class="p">.</span><span class="n">getMaxLength</span><span class="p">(),</span> <span class="n">property</span><span class="p">.</span><span class="n">getPrecision</span><span class="p">(),</span> <span class="n">property</span><span class="p">.</span><span class="n">getScale</span><span class="p">(),</span>
-            <span class="n">property</span><span class="p">.</span><span class="n">isUnicode</span><span class="p">()).</span><span class="n">equals</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="n">getText</span><span class="p">()))</span> <span class="p">{</span>
-          <span class="n">found</span> <span class="p">=</span> <span class="n">false</span><span class="p">;</span>
-          <span class="k">break</span><span class="p">;</span>
+<div class="codehilite"><pre><span class="n">public</span> <span class="n">Entity</span> <span class="n">read</span><span class="p">(</span><span class="n">final</span> <span class="n">EdmEntitySet</span> <span class="n">edmEntitySet</span><span class="p">,</span> <span class="n">final</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">UriParameter</span><span class="o">&gt;</span> <span class="n">keys</span><span class="p">)</span> <span class="n">throws</span> <span class="n">DataProviderException</span> <span class="p">{</span>
+  <span class="n">final</span> <span class="n">EdmEntityType</span> <span class="n">entityType</span> <span class="p">=</span> <span class="n">edmEntitySet</span><span class="p">.</span><span class="n">getEntityType</span><span class="p">();</span>
+  <span class="n">final</span> <span class="n">EntitySet</span> <span class="n">entitySet</span> <span class="p">=</span> <span class="n">readAll</span><span class="p">(</span><span class="n">edmEntitySet</span><span class="p">);</span>
+
+  <span class="k">if</span> <span class="p">(</span><span class="n">entitySet</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">return</span> <span class="n">null</span><span class="p">;</span>
+  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+    <span class="k">try</span> <span class="p">{</span>
+      <span class="k">for</span> <span class="p">(</span><span class="n">final</span> <span class="n">Entity</span> <span class="n">entity</span> <span class="p">:</span> <span class="n">entitySet</span><span class="p">.</span><span class="n">getEntities</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">boolean</span> <span class="n">found</span> <span class="p">=</span> <span class="n">true</span><span class="p">;</span>
+        <span class="k">for</span> <span class="p">(</span><span class="n">final</span> <span class="n">UriParameter</span> <span class="n">key</span> <span class="p">:</span> <span class="n">keys</span><span class="p">)</span> <span class="p">{</span>
+          <span class="n">final</span> <span class="n">EdmProperty</span> <span class="n">property</span> <span class="p">=</span> <span class="p">(</span><span class="n">EdmProperty</span><span class="p">)</span> <span class="n">entityType</span><span class="p">.</span><span class="n">getProperty</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="n">getName</span><span class="p">());</span>
+          <span class="n">final</span> <span class="n">EdmPrimitiveType</span> <span class="n">type</span> <span class="p">=</span> <span class="p">(</span><span class="n">EdmPrimitiveType</span><span class="p">)</span> <span class="n">property</span><span class="p">.</span><span class="n">getType</span><span class="p">();</span>
+
+          <span class="k">if</span> <span class="p">(</span>!<span class="n">type</span><span class="p">.</span><span class="n">valueToString</span><span class="p">(</span><span class="n">entity</span><span class="p">.</span><span class="n">getProperty</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="n">getName</span><span class="p">()).</span><span class="n">getValue</span><span class="p">(),</span> <span class="n">property</span><span class="p">.</span><span class="n">isNullable</span><span class="p">(),</span>
+              <span class="n">property</span><span class="p">.</span><span class="n">getMaxLength</span><span class="p">(),</span> <span class="n">property</span><span class="p">.</span><span class="n">getPrecision</span><span class="p">(),</span> <span class="n">property</span><span class="p">.</span><span class="n">getScale</span><span class="p">(),</span>
+              <span class="n">property</span><span class="p">.</span><span class="n">isUnicode</span><span class="p">()).</span><span class="n">equals</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="n">getText</span><span class="p">()))</span> <span class="p">{</span>

[... 726 lines stripped ...]