<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_92) on Mon Aug 13 15:36:38 CEST 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Uses of Class org.apache.olingo.commons.api.data.Delta (Olingo-OData 4.5.0 API)</title>
<meta name="date" content="2018-08-13">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Uses of Class org.apache.olingo.commons.api.data.Delta (Olingo-OData 4.5.0 API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Class</a></li>
<li class="navBarCell1Rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/olingo/commons/api/data/class-use/Delta.html" target="_top">Frames</a></li>
<li><a href="Delta.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class org.apache.olingo.commons.api.data.Delta" class="title">Uses of Class<br>org.apache.olingo.commons.api.data.Delta</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
<caption><span>Packages that use <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.olingo.client.api.serialization">org.apache.olingo.client.api.serialization</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.server.api.serializer">org.apache.olingo.server.api.serializer</a></td>
<td class="colLast">
<div class="block">Olingo Server API - Serializer</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList"><a name="org.apache.olingo.client.api.serialization">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a> in <a href="../../../../../../../org/apache/olingo/client/api/serialization/package-summary.html">org.apache.olingo.client.api.serialization</a></h3>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../../../org/apache/olingo/client/api/serialization/package-summary.html">org.apache.olingo.client.api.serialization</a> that return types with arguments of type <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/olingo/client/api/data/ResWrap.html" title="class in org.apache.olingo.client.api.data">ResWrap</a>&lt;<a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a>&gt;</code></td>
<td class="colLast"><span class="typeNameLabel">ClientODataDeserializer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/olingo/client/api/serialization/ClientODataDeserializer.html#toDelta-java.io.InputStream-">toDelta</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;input)</code>
<div class="block">Gets a delta object from the given InputStream.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Method parameters in <a href="../../../../../../../org/apache/olingo/client/api/serialization/package-summary.html">org.apache.olingo.client.api.serialization</a> with type arguments of type <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/olingo/client/api/domain/ClientDelta.html" title="interface in org.apache.olingo.client.api.domain">ClientDelta</a></code></td>
<td class="colLast"><span class="typeNameLabel">ODataBinder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/olingo/client/api/serialization/ODataBinder.html#getODataDelta-org.apache.olingo.client.api.data.ResWrap-">getODataDelta</a></span>(<a href="../../../../../../../org/apache/olingo/client/api/data/ResWrap.html" title="class in org.apache.olingo.client.api.data">ResWrap</a>&lt;<a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a>&gt;&nbsp;resource)</code>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.server.api.serializer">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a> in <a href="../../../../../../../org/apache/olingo/server/api/serializer/package-summary.html">org.apache.olingo.server.api.serializer</a></h3>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../../../org/apache/olingo/server/api/serializer/package-summary.html">org.apache.olingo.server.api.serializer</a> with parameters of type <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/olingo/server/api/serializer/SerializerResult.html" title="interface in org.apache.olingo.server.api.serializer">SerializerResult</a></code></td>
<td class="colLast"><span class="typeNameLabel">EdmDeltaSerializer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/olingo/server/api/serializer/EdmDeltaSerializer.html#entityCollection-org.apache.olingo.server.api.ServiceMetadata-org.apache.olingo.commons.api.edm.EdmEntityType-org.apache.olingo.commons.api.data.Delta-org.apache.olingo.server.api.serializer.EntityCollectionSerializerOptions-">entityCollection</a></span>(<a href="../../../../../../../org/apache/olingo/server/api/ServiceMetadata.html" title="interface in org.apache.olingo.server.api">ServiceMetadata</a>&nbsp;metadata,
                <a href="../../../../../../../org/apache/olingo/commons/api/edm/EdmEntityType.html" title="interface in org.apache.olingo.commons.api.edm">EdmEntityType</a>&nbsp;referencedEntityType,
                <a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Delta</a>&nbsp;delta,
                <a href="../../../../../../../org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.html" title="class in org.apache.olingo.server.api.serializer">EntityCollectionSerializerOptions</a>&nbsp;options)</code>
<div class="block">Writes collection of delta-response into an InputStream.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../../../../../../../org/apache/olingo/commons/api/data/Delta.html" title="class in org.apache.olingo.commons.api.data">Class</a></li>
<li class="navBarCell1Rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/olingo/commons/api/data/class-use/Delta.html" target="_top">Frames</a></li>
<li><a href="Delta.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2013&#x2013;2018 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
