Author: buildbot
Date: Tue Nov 17 14:36:12 2015
New Revision: 972707

Log:
Staging update by buildbot for olingo

Modified:
    websites/staging/olingo/trunk/content/   (props changed)
    
websites/staging/olingo/trunk/content/doc/odata4/tutorials/deep_insert/tutorial_deep_insert.html

Propchange: websites/staging/olingo/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Nov 17 14:36:12 2015
@@ -1 +1 @@
-1714795
+1714796

Modified: 
websites/staging/olingo/trunk/content/doc/odata4/tutorials/deep_insert/tutorial_deep_insert.html
==============================================================================
--- 
websites/staging/olingo/trunk/content/doc/odata4/tutorials/deep_insert/tutorial_deep_insert.html
 (original)
+++ 
websites/staging/olingo/trunk/content/doc/odata4/tutorials/deep_insert/tutorial_deep_insert.html
 Tue Nov 17 14:36:12 2015
@@ -148,7 +148,7 @@ Such a request is issued againest the UR
 <p>Afterwards do a Deploy and run: it should be working. At this state you can 
perform CRUD operations and do navigations between products and categories.</p>
 <h1 id="2-implementation">2. Implementation<a class="headerlink" 
href="#2-implementation" title="Permanent link">&para;</a></h1>
 <p>Before we start with the implementation, please have a look at the class 
<code>myservice.mynamespace.data.Storage</code>. In difference to the <a 
href="http://olingo.apache.org/doc/odata4/tutorials/navigation/tutorial_navigation.html";>navigation
 tutorial</a> the relations between two entities can not be hard coded because 
we would like to create and change relations between entities dynamically. In 
the constructor of the data storage the sample data is created. After that the 
method <code>linkProductsAndCategories</code>is called. This methods sets a few 
links between the just created entities.</p>
-<p>To express the relation between two entities, Olingo uses the class <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Link.html";>Link</a>.
 This class is used for related entites (directly connected via Java 
references) and bindings (which are actually strings) to other entities. To get 
the related entites for a particual navigation property, you can ask an entity 
with the method <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Linked.html#getNavigationLink(java.lang.String)"><code>getNavigationLink(String
 name)</code></a> for an navigation property. The link will contain either an 
entity or a collection of entities dependenting on the type of the navigation 
property. To get the actual entities use the methods <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Link.html#getInlineEntity()"><code>getInlineEntity()</code></a>
 or <a href="http://olingo.apache.org/javadoc/odata4/org/ap
 
ache/olingo/commons/api/data/Link.html#getInlineEntitySet()"><code>getInlineEntitySet()</code></a>
+<p>To express the relation between two entities, Olingo uses the class <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Link.html";>Link</a>.
 This class is used for related entites (directly connected via Java 
references) and bindings (which are actually strings) to other entities. To get 
the related entites for a particual navigation property, you can ask an entity 
with the method <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Linked.html#getNavigationLink(java.lang.String)"><code>getNavigationLink(String
 name)</code></a> for an navigation property link. The link will contain either 
an entity or a collection of entities dependenting on the type of the 
navigation property. To get the actual entities use the methods <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Link.html#getInlineEntity()"><code>getInlineEntity()</code></a>
 or <a href="http://olingo.apache.org/javadoc/odata4/o
 
rg/apache/olingo/commons/api/data/Link.html#getInlineEntitySet()"><code>getInlineEntitySet()</code></a>
 The same can be done for bindings via the method <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Linked.html#getNavigationBinding(java.lang.String)"><code>getNavigationBinding(String
 name)</code></a>. The values of the Binding can be gotten by the methods <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Link.html#getBindingLink()"><code>getBindingLink()</code></a>
 and <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/commons/api/data/Link.html#getBindingLinks()"><code>getBindingLinks()</code></a>.
 </p>
 <p>The point is that the Entity deserializer uses the same concept to 
represent the payload as Java objects.
 In the previous tutorials the entity object returned by the deserializer is 
passed to the data store. Please open the class 
<code>myservice.mynamespace.data.Storage</code> and jump the method 
<code>createEntity</code>.</p>
@@ -181,84 +181,86 @@ In the previous tutorials the entity obj
 </pre></div>
 
 
-<p>The implementation is split in two steps:
-   * Handle entity bindings
-   * Handle related entities</p>
+<p>The implementation is split in two steps:</p>
+<ul>
+<li>Handle entity bindings</li>
+<li>Handle related entities</li>
+</ul>
 <h2 id="handle-entity-bindings">Handle entity bindings<a class="headerlink" 
href="#handle-entity-bindings" title="Permanent link">&para;</a></h2>
 <p>To handle entity bindings we need two helper methods.</p>
 <p>The first method takes an entity-Id and returns the addressed entity. The 
OData objects provides a helper object to parse entity-ids. (See <a 
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/uri/UriHelper.html";>UriHelper</a>).
 After parsing the id we have to check if the addressed entity set fits to the 
entity set the navigation property points to. After that the data is read by 
calling <code>readEntityData</code>.</p>
-<div class="codehilite"><pre><span class="n">private</span> <span 
class="n">Entity</span> <span class="n">readEntityByBindingLink</span><span 
class="p">(</span><span class="n">final</span> <span class="n">String</span> 
<span class="n">entityId</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">String</span> <span 
class="n">rawServiceUri</span><span class="p">)</span> <span 
class="n">throws</span> <span class="n">ODataApplicationException</span> <span 
class="p">{</span>
+<div class="codehilite"><pre><span class="kd">private</span> <span 
class="n">Entity</span> <span class="nf">readEntityByBindingLink</span><span 
class="o">(</span><span class="kd">final</span> <span class="n">String</span> 
<span class="n">entityId</span><span class="o">,</span> <span 
class="kd">final</span> <span class="n">EdmEntitySet</span> <span 
class="n">edmEntitySet</span><span class="o">,</span> 
+    <span class="kd">final</span> <span class="n">String</span> <span 
class="n">rawServiceUri</span><span class="o">)</span> <span 
class="kd">throws</span> <span class="n">ODataApplicationException</span> <span 
class="o">{</span>
 
-    <span class="n">UriResourceEntitySet</span> <span 
class="n">entitySetResource</span> <span class="p">=</span> <span 
class="n">null</span><span class="p">;</span>
-    <span class="k">try</span> <span class="p">{</span>
-        <span class="n">entitySetResource</span> <span class="p">=</span> 
<span class="n">odata</span><span class="p">.</span><span 
class="n">createUriHelper</span><span class="p">().</span><span 
class="n">parseEntityId</span><span class="p">(</span><span 
class="n">edm</span><span class="p">,</span> <span 
class="n">entityId</span><span class="p">,</span> <span 
class="n">rawServiceUri</span><span class="p">);</span>
-
-        <span class="k">if</span><span class="p">(</span>!<span 
class="n">entitySetResource</span><span class="p">.</span><span 
class="n">getEntitySet</span><span class="p">().</span><span 
class="n">getName</span><span class="p">().</span><span 
class="n">equals</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>
-            <span class="n">throw</span> <span class="n">new</span> <span 
class="n">ODataApplicationException</span><span class="p">(</span>&quot;<span 
class="n">Execpted</span> <span class="n">an</span> <span 
class="n">entity</span><span class="o">-</span><span class="n">id</span> <span 
class="k">for</span> <span class="n">entity</span> <span class="n">set</span> 
&quot; <span class="o">+</span> <span class="n">edmEntitySet</span><span 
class="p">.</span><span class="n">getName</span><span class="p">()</span> <span 
class="o">+</span>
-                &quot; <span class="n">but</span> <span class="n">found</span> 
<span class="n">id</span> <span class="k">for</span> <span 
class="n">entity</span> <span class="n">set</span> &quot; <span 
class="o">+</span> <span class="n">entitySetResource</span><span 
class="p">.</span><span class="n">getEntitySet</span><span 
class="p">().</span><span class="n">getName</span><span class="p">(),</span> 
-                <span class="n">HttpStatusCode</span><span 
class="p">.</span><span class="n">BAD_REQUEST</span><span 
class="p">.</span><span class="n">getStatusCode</span><span 
class="p">(),</span> <span class="n">Locale</span><span class="p">.</span><span 
class="n">ENGLISH</span><span class="p">);</span>
-        <span class="p">}</span>
-    <span class="p">}</span> <span class="k">catch</span> <span 
class="p">(</span><span class="n">DeserializerException</span> <span 
class="n">e</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">throw</span> <span class="n">new</span> <span 
class="n">ODataApplicationException</span><span class="p">(</span><span 
class="n">entityId</span> <span class="o">+</span> &quot; <span 
class="n">is</span> <span class="n">not</span> <span class="n">a</span> <span 
class="n">valid</span> <span class="n">entity</span><span 
class="o">-</span><span class="n">Id</span>&quot;<span class="p">,</span> 
-            <span class="n">HttpStatusCode</span><span class="p">.</span><span 
class="n">BAD_REQUEST</span><span class="p">.</span><span 
class="n">getStatusCode</span><span class="p">(),</span> <span 
class="n">Locale</span><span class="p">.</span><span 
class="n">ENGLISH</span><span class="p">);</span>
-    <span class="p">}</span>
+    <span class="n">UriResourceEntitySet</span> <span 
class="n">entitySetResource</span> <span class="o">=</span> <span 
class="kc">null</span><span class="o">;</span>
+    <span class="k">try</span> <span class="o">{</span>
+        <span class="n">entitySetResource</span> <span class="o">=</span> 
<span class="n">odata</span><span class="o">.</span><span 
class="na">createUriHelper</span><span class="o">().</span><span 
class="na">parseEntityId</span><span class="o">(</span><span 
class="n">edm</span><span class="o">,</span> <span 
class="n">entityId</span><span class="o">,</span> <span 
class="n">rawServiceUri</span><span class="o">);</span>
+
+        <span class="k">if</span><span class="o">(!</span><span 
class="n">entitySetResource</span><span class="o">.</span><span 
class="na">getEntitySet</span><span class="o">().</span><span 
class="na">getName</span><span class="o">().</span><span 
class="na">equals</span><span class="o">(</span><span 
class="n">edmEntitySet</span><span class="o">.</span><span 
class="na">getName</span><span class="o">()))</span> <span class="o">{</span>
+            <span class="k">throw</span> <span class="k">new</span> <span 
class="nf">ODataApplicationException</span><span class="o">(</span><span 
class="s">&quot;Execpted an entity-id for entity set &quot;</span> <span 
class="o">+</span> <span class="n">edmEntitySet</span><span 
class="o">.</span><span class="na">getName</span><span class="o">()</span> 
<span class="o">+</span>
+                <span class="s">&quot; but found id for entity set 
&quot;</span> <span class="o">+</span> <span 
class="n">entitySetResource</span><span class="o">.</span><span 
class="na">getEntitySet</span><span class="o">().</span><span 
class="na">getName</span><span class="o">(),</span> 
+                <span class="n">HttpStatusCode</span><span 
class="o">.</span><span class="na">BAD_REQUEST</span><span 
class="o">.</span><span class="na">getStatusCode</span><span 
class="o">(),</span> <span class="n">Locale</span><span class="o">.</span><span 
class="na">ENGLISH</span><span class="o">);</span>
+        <span class="o">}</span>
+    <span class="o">}</span> <span class="k">catch</span> <span 
class="o">(</span><span class="n">DeserializerException</span> <span 
class="n">e</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">throw</span> <span class="k">new</span> <span 
class="nf">ODataApplicationException</span><span class="o">(</span><span 
class="n">entityId</span> <span class="o">+</span> <span class="s">&quot; is 
not a valid entity-Id&quot;</span><span class="o">,</span> 
+            <span class="n">HttpStatusCode</span><span class="o">.</span><span 
class="na">BAD_REQUEST</span><span class="o">.</span><span 
class="na">getStatusCode</span><span class="o">(),</span> <span 
class="n">Locale</span><span class="o">.</span><span 
class="na">ENGLISH</span><span class="o">);</span>
+    <span class="o">}</span>
 
-    <span class="k">return</span> <span class="n">readEntityData</span><span 
class="p">(</span><span class="n">entitySetResource</span><span 
class="p">.</span><span class="n">getEntitySet</span><span class="p">(),</span> 
<span class="n">entitySetResource</span><span class="p">.</span><span 
class="n">getKeyPredicates</span><span class="p">());</span>
-<span class="p">}</span>
+    <span class="k">return</span> <span class="nf">readEntityData</span><span 
class="o">(</span><span class="n">entitySetResource</span><span 
class="o">.</span><span class="na">getEntitySet</span><span 
class="o">(),</span> <span class="n">entitySetResource</span><span 
class="o">.</span><span class="na">getKeyPredicates</span><span 
class="o">());</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <p>The second method helps us to link entities together. If the navigation 
property has partner navigation property the link is set in both directions.</p>
-<div class="codehilite"><pre><span class="n">private</span> <span 
class="n">void</span> <span class="n">createLink</span><span 
class="p">(</span><span class="n">final</span> <span 
class="n">EdmNavigationProperty</span> <span 
class="n">navigationProperty</span><span class="p">,</span> <span 
class="n">final</span> <span class="n">Entity</span> <span 
class="n">srcEntity</span><span class="p">,</span>
-    <span class="n">final</span> <span class="n">Entity</span> <span 
class="n">destEntity</span><span class="p">)</span> <span class="p">{</span>
+<div class="codehilite"><pre><span class="kd">private</span> <span 
class="kt">void</span> <span class="nf">createLink</span><span 
class="o">(</span><span class="kd">final</span> <span 
class="n">EdmNavigationProperty</span> <span 
class="n">navigationProperty</span><span class="o">,</span> <span 
class="kd">final</span> <span class="n">Entity</span> <span 
class="n">srcEntity</span><span class="o">,</span>
+    <span class="kd">final</span> <span class="n">Entity</span> <span 
class="n">destEntity</span><span class="o">)</span> <span class="o">{</span>
 
-    <span class="n">setLink</span><span class="p">(</span><span 
class="n">navigationProperty</span><span class="p">,</span> <span 
class="n">srcEntity</span><span class="p">,</span> <span 
class="n">destEntity</span><span class="p">);</span>
+    <span class="n">setLink</span><span class="o">(</span><span 
class="n">navigationProperty</span><span class="o">,</span> <span 
class="n">srcEntity</span><span class="o">,</span> <span 
class="n">destEntity</span><span class="o">);</span>
 
-    <span class="n">final</span> <span class="n">EdmNavigationProperty</span> 
<span class="n">partnerNavigationProperty</span> <span class="p">=</span> <span 
class="n">navigationProperty</span><span class="p">.</span><span 
class="n">getPartner</span><span class="p">();</span>
-    <span class="k">if</span> <span class="p">(</span><span 
class="n">partnerNavigationProperty</span> !<span class="p">=</span> <span 
class="n">null</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">setLink</span><span class="p">(</span><span 
class="n">partnerNavigationProperty</span><span class="p">,</span> <span 
class="n">destEntity</span><span class="p">,</span> <span 
class="n">srcEntity</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span>
+    <span class="kd">final</span> <span class="n">EdmNavigationProperty</span> 
<span class="n">partnerNavigationProperty</span> <span class="o">=</span> <span 
class="n">navigationProperty</span><span class="o">.</span><span 
class="na">getPartner</span><span class="o">();</span>
+    <span class="k">if</span> <span class="o">(</span><span 
class="n">partnerNavigationProperty</span> <span class="o">!=</span> <span 
class="kc">null</span><span class="o">)</span> <span class="o">{</span>
+        <span class="n">setLink</span><span class="o">(</span><span 
class="n">partnerNavigationProperty</span><span class="o">,</span> <span 
class="n">destEntity</span><span class="o">,</span> <span 
class="n">srcEntity</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <p>If the client has used the <code>odata.bind</code> property annotation, we 
can get the bindings by calling <code>getNavigationBindings()</code>. The 
implementation loops over all bindings and links the addressed entity to the 
new created one.</p>
 <div class="codehilite"><pre><span class="c1">// 2.1.) Apply binding 
links</span>
-<span class="k">for</span><span class="p">(</span><span class="k">final</span> 
<span class="n">Link</span> <span class="n">link</span> <span 
class="o">:</span> <span class="n">entity</span><span class="p">.</span><span 
class="n">getNavigationBindings</span><span class="p">())</span> <span 
class="p">{</span>
-    <span class="k">final</span> <span class="n">EdmNavigationProperty</span> 
<span class="n">edmNavigationProperty</span> <span class="o">=</span> <span 
class="n">edmEntityType</span><span class="p">.</span><span 
class="n">getNavigationProperty</span><span class="p">(</span><span 
class="n">link</span><span class="p">.</span><span 
class="n">getTitle</span><span class="p">());</span>
-    <span class="k">final</span> <span class="n">EdmEntitySet</span> <span 
class="n">targetEntitySet</span> <span class="o">=</span> <span 
class="p">(</span><span class="n">EdmEntitySet</span><span class="p">)</span> 
<span class="n">edmEntitySet</span><span class="p">.</span><span 
class="n">getRelatedBindingTarget</span><span class="p">(</span><span 
class="n">link</span><span class="p">.</span><span 
class="n">getTitle</span><span class="p">());</span>
-
-    <span class="k">if</span><span class="p">(</span><span 
class="n">edmNavigationProperty</span><span class="p">.</span><span 
class="n">isCollection</span><span class="p">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="p">.</span><span class="n">getBindingLinks</span><span 
class="p">()</span> <span class="o">!=</span> <span class="k">null</span><span 
class="p">)</span> <span class="p">{</span>
-        <span class="k">for</span><span class="p">(</span><span 
class="k">final</span> <span class="n">String</span> <span 
class="n">bindingLink</span> <span class="o">:</span> <span 
class="n">link</span><span class="p">.</span><span 
class="n">getBindingLinks</span><span class="p">())</span> <span 
class="p">{</span>
-            <span class="k">final</span> <span class="n">Entity</span> <span 
class="n">relatedEntity</span> <span class="o">=</span> <span 
class="n">readEntityByBindingLink</span><span class="p">(</span><span 
class="n">bindingLink</span><span class="p">,</span> <span 
class="n">targetEntitySet</span><span class="p">,</span> <span 
class="n">rawServiceUri</span><span class="p">);</span>
-            <span class="n">createLink</span><span class="p">(</span><span 
class="n">edmNavigationProperty</span><span class="p">,</span> <span 
class="n">newEntity</span><span class="p">,</span> <span 
class="n">relatedEntity</span><span class="p">);</span>
-        <span class="p">}</span>
-    <span class="p">}</span> <span class="k">else</span> <span 
class="k">if</span><span class="p">(</span><span class="o">!</span><span 
class="n">edmNavigationProperty</span><span class="p">.</span><span 
class="n">isCollection</span><span class="p">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="p">.</span><span class="n">getBindingLink</span><span 
class="p">()</span> <span class="o">!=</span> <span class="k">null</span><span 
class="p">)</span> <span class="p">{</span>
-        <span class="k">final</span> <span class="n">Entity</span> <span 
class="n">relatedEntity</span> <span class="o">=</span> <span 
class="n">readEntityByBindingLink</span><span class="p">(</span><span 
class="n">link</span><span class="p">.</span><span 
class="n">getBindingLink</span><span class="p">(),</span> <span 
class="n">targetEntitySet</span><span class="p">,</span> <span 
class="n">rawServiceUri</span><span class="p">);</span>
-        <span class="n">createLink</span><span class="p">(</span><span 
class="n">edmNavigationProperty</span><span class="p">,</span> <span 
class="n">newEntity</span><span class="p">,</span> <span 
class="n">relatedEntity</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span>
+<span class="k">for</span><span class="o">(</span><span 
class="kd">final</span> <span class="n">Link</span> <span class="n">link</span> 
<span class="o">:</span> <span class="n">entity</span><span 
class="o">.</span><span class="na">getNavigationBindings</span><span 
class="o">())</span> <span class="o">{</span>
+    <span class="kd">final</span> <span class="n">EdmNavigationProperty</span> 
<span class="n">edmNavigationProperty</span> <span class="o">=</span> <span 
class="n">edmEntityType</span><span class="o">.</span><span 
class="na">getNavigationProperty</span><span class="o">(</span><span 
class="n">link</span><span class="o">.</span><span 
class="na">getTitle</span><span class="o">());</span>
+    <span class="kd">final</span> <span class="n">EdmEntitySet</span> <span 
class="n">targetEntitySet</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">EdmEntitySet</span><span class="o">)</span> 
<span class="n">edmEntitySet</span><span class="o">.</span><span 
class="na">getRelatedBindingTarget</span><span class="o">(</span><span 
class="n">link</span><span class="o">.</span><span 
class="na">getTitle</span><span class="o">());</span>
+
+    <span class="k">if</span><span class="o">(</span><span 
class="n">edmNavigationProperty</span><span class="o">.</span><span 
class="na">isCollection</span><span class="o">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="o">.</span><span class="na">getBindingLinks</span><span 
class="o">()</span> <span class="o">!=</span> <span class="kc">null</span><span 
class="o">)</span> <span class="o">{</span>
+        <span class="k">for</span><span class="o">(</span><span 
class="kd">final</span> <span class="n">String</span> <span 
class="n">bindingLink</span> <span class="o">:</span> <span 
class="n">link</span><span class="o">.</span><span 
class="na">getBindingLinks</span><span class="o">())</span> <span 
class="o">{</span>
+            <span class="kd">final</span> <span class="n">Entity</span> <span 
class="n">relatedEntity</span> <span class="o">=</span> <span 
class="n">readEntityByBindingLink</span><span class="o">(</span><span 
class="n">bindingLink</span><span class="o">,</span> <span 
class="n">targetEntitySet</span><span class="o">,</span> <span 
class="n">rawServiceUri</span><span class="o">);</span>
+            <span class="n">createLink</span><span class="o">(</span><span 
class="n">edmNavigationProperty</span><span class="o">,</span> <span 
class="n">newEntity</span><span class="o">,</span> <span 
class="n">relatedEntity</span><span class="o">);</span>
+        <span class="o">}</span>
+    <span class="o">}</span> <span class="k">else</span> <span 
class="k">if</span><span class="o">(!</span><span 
class="n">edmNavigationProperty</span><span class="o">.</span><span 
class="na">isCollection</span><span class="o">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="o">.</span><span class="na">getBindingLink</span><span 
class="o">()</span> <span class="o">!=</span> <span class="kc">null</span><span 
class="o">)</span> <span class="o">{</span>
+        <span class="kd">final</span> <span class="n">Entity</span> <span 
class="n">relatedEntity</span> <span class="o">=</span> <span 
class="n">readEntityByBindingLink</span><span class="o">(</span><span 
class="n">link</span><span class="o">.</span><span 
class="na">getBindingLink</span><span class="o">(),</span> <span 
class="n">targetEntitySet</span><span class="o">,</span> <span 
class="n">rawServiceUri</span><span class="o">);</span>
+        <span class="n">createLink</span><span class="o">(</span><span 
class="n">edmNavigationProperty</span><span class="o">,</span> <span 
class="n">newEntity</span><span class="o">,</span> <span 
class="n">relatedEntity</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <h2 id="handle-related-entities">Handle related entities<a class="headerlink" 
href="#handle-related-entities" title="Permanent link">&para;</a></h2>
 <p>The creation of related entities is similar. First the implementation loops 
over all navigation properties with related entites in the payload. The 
simplest way to create releated entities is to call the method 
<code>createEntityData</code>. So the the implementation is called recursively 
and can handle deep inserts with arbitrary depth.</p>
 <div class="codehilite"><pre><span class="c1">// 2.2.) Create nested 
entities</span>
-<span class="k">for</span><span class="p">(</span><span class="k">final</span> 
<span class="n">Link</span> <span class="n">link</span> <span 
class="o">:</span> <span class="n">entity</span><span class="p">.</span><span 
class="n">getNavigationLinks</span><span class="p">())</span> <span 
class="p">{</span>
-    <span class="k">final</span> <span class="n">EdmNavigationProperty</span> 
<span class="n">edmNavigationProperty</span> <span class="o">=</span> <span 
class="n">edmEntityType</span><span class="p">.</span><span 
class="n">getNavigationProperty</span><span class="p">(</span><span 
class="n">link</span><span class="p">.</span><span 
class="n">getTitle</span><span class="p">());</span>
-    <span class="k">final</span> <span class="n">EdmEntitySet</span> <span 
class="n">targetEntitySet</span> <span class="o">=</span> <span 
class="p">(</span><span class="n">EdmEntitySet</span><span class="p">)</span> 
<span class="n">edmEntitySet</span><span class="p">.</span><span 
class="n">getRelatedBindingTarget</span><span class="p">(</span><span 
class="n">link</span><span class="p">.</span><span 
class="n">getTitle</span><span class="p">());</span>
-
-    <span class="k">if</span><span class="p">(</span><span 
class="n">edmNavigationProperty</span><span class="p">.</span><span 
class="n">isCollection</span><span class="p">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="p">.</span><span class="n">getInlineEntitySet</span><span 
class="p">()</span> <span class="o">!=</span> <span class="k">null</span><span 
class="p">)</span> <span class="p">{</span>
-        <span class="k">for</span><span class="p">(</span><span 
class="k">final</span> <span class="n">Entity</span> <span 
class="n">nestedEntity</span> <span class="o">:</span> <span 
class="n">link</span><span class="p">.</span><span 
class="n">getInlineEntitySet</span><span class="p">().</span><span 
class="n">getEntities</span><span class="p">())</span> <span class="p">{</span>
-            <span class="k">final</span> <span class="n">Entity</span> <span 
class="n">newNestedEntity</span> <span class="o">=</span> <span 
class="n">createEntityData</span><span class="p">(</span><span 
class="n">targetEntitySet</span><span class="p">,</span> <span 
class="n">nestedEntity</span><span class="p">,</span> <span 
class="n">rawServiceUri</span><span class="p">);</span>
-            <span class="n">createLink</span><span class="p">(</span><span 
class="n">edmNavigationProperty</span><span class="p">,</span> <span 
class="n">newEntity</span><span class="p">,</span> <span 
class="n">newNestedEntity</span><span class="p">);</span>
-        <span class="p">}</span>
-    <span class="p">}</span> <span class="k">else</span> <span 
class="k">if</span><span class="p">(</span><span class="o">!</span><span 
class="n">edmNavigationProperty</span><span class="p">.</span><span 
class="n">isCollection</span><span class="p">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="p">.</span><span class="n">getInlineEntity</span><span 
class="p">()</span> <span class="o">!=</span> <span class="k">null</span><span 
class="p">){</span>
-        <span class="k">final</span> <span class="n">Entity</span> <span 
class="n">newNestedEntity</span> <span class="o">=</span> <span 
class="n">createEntityData</span><span class="p">(</span><span 
class="n">targetEntitySet</span><span class="p">,</span> <span 
class="n">link</span><span class="p">.</span><span 
class="n">getInlineEntity</span><span class="p">(),</span> <span 
class="n">rawServiceUri</span><span class="p">);</span>
-        <span class="n">createLink</span><span class="p">(</span><span 
class="n">edmNavigationProperty</span><span class="p">,</span> <span 
class="n">newEntity</span><span class="p">,</span> <span 
class="n">newNestedEntity</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span>
+<span class="k">for</span><span class="o">(</span><span 
class="kd">final</span> <span class="n">Link</span> <span class="n">link</span> 
<span class="o">:</span> <span class="n">entity</span><span 
class="o">.</span><span class="na">getNavigationLinks</span><span 
class="o">())</span> <span class="o">{</span>
+    <span class="kd">final</span> <span class="n">EdmNavigationProperty</span> 
<span class="n">edmNavigationProperty</span> <span class="o">=</span> <span 
class="n">edmEntityType</span><span class="o">.</span><span 
class="na">getNavigationProperty</span><span class="o">(</span><span 
class="n">link</span><span class="o">.</span><span 
class="na">getTitle</span><span class="o">());</span>
+    <span class="kd">final</span> <span class="n">EdmEntitySet</span> <span 
class="n">targetEntitySet</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">EdmEntitySet</span><span class="o">)</span> 
<span class="n">edmEntitySet</span><span class="o">.</span><span 
class="na">getRelatedBindingTarget</span><span class="o">(</span><span 
class="n">link</span><span class="o">.</span><span 
class="na">getTitle</span><span class="o">());</span>
+
+    <span class="k">if</span><span class="o">(</span><span 
class="n">edmNavigationProperty</span><span class="o">.</span><span 
class="na">isCollection</span><span class="o">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="o">.</span><span class="na">getInlineEntitySet</span><span 
class="o">()</span> <span class="o">!=</span> <span class="kc">null</span><span 
class="o">)</span> <span class="o">{</span>
+        <span class="k">for</span><span class="o">(</span><span 
class="kd">final</span> <span class="n">Entity</span> <span 
class="n">nestedEntity</span> <span class="o">:</span> <span 
class="n">link</span><span class="o">.</span><span 
class="na">getInlineEntitySet</span><span class="o">().</span><span 
class="na">getEntities</span><span class="o">())</span> <span class="o">{</span>
+            <span class="kd">final</span> <span class="n">Entity</span> <span 
class="n">newNestedEntity</span> <span class="o">=</span> <span 
class="n">createEntityData</span><span class="o">(</span><span 
class="n">targetEntitySet</span><span class="o">,</span> <span 
class="n">nestedEntity</span><span class="o">,</span> <span 
class="n">rawServiceUri</span><span class="o">);</span>
+            <span class="n">createLink</span><span class="o">(</span><span 
class="n">edmNavigationProperty</span><span class="o">,</span> <span 
class="n">newEntity</span><span class="o">,</span> <span 
class="n">newNestedEntity</span><span class="o">);</span>
+        <span class="o">}</span>
+    <span class="o">}</span> <span class="k">else</span> <span 
class="k">if</span><span class="o">(!</span><span 
class="n">edmNavigationProperty</span><span class="o">.</span><span 
class="na">isCollection</span><span class="o">()</span> <span 
class="o">&amp;&amp;</span> <span class="n">link</span><span 
class="o">.</span><span class="na">getInlineEntity</span><span 
class="o">()</span> <span class="o">!=</span> <span class="kc">null</span><span 
class="o">){</span>
+        <span class="kd">final</span> <span class="n">Entity</span> <span 
class="n">newNestedEntity</span> <span class="o">=</span> <span 
class="n">createEntityData</span><span class="o">(</span><span 
class="n">targetEntitySet</span><span class="o">,</span> <span 
class="n">link</span><span class="o">.</span><span 
class="na">getInlineEntity</span><span class="o">(),</span> <span 
class="n">rawServiceUri</span><span class="o">);</span>
+        <span class="n">createLink</span><span class="o">(</span><span 
class="n">edmNavigationProperty</span><span class="o">,</span> <span 
class="n">newEntity</span><span class="o">,</span> <span 
class="n">newNestedEntity</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 


Reply via email to