<!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:37 CEST 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.olingo.client.api.communication.request.retrieve Class Hierarchy (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="org.apache.olingo.client.api.communication.request.retrieve Class Hierarchy (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>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</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><a href="../../../../../../../../org/apache/olingo/client/api/communication/request/invoke/package-tree.html">Prev</a></li>
<li><a href="../../../../../../../../org/apache/olingo/client/api/communication/request/streamed/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/olingo/client/api/communication/request/retrieve/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.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">
<h1 class="title">Hierarchy For Package org.apache.olingo.client.api.communication.request.retrieve</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li type="circle">org.apache.olingo.client.api.communication.request.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/ODataRequest.html" title="interface in org.apache.olingo.client.api.communication.request"><span class="typeNameLink">ODataRequest</span></a>
<ul>
<li type="circle">org.apache.olingo.client.api.communication.request.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/ODataBasicRequest.html" title="interface in org.apache.olingo.client.api.communication.request"><span class="typeNameLink">ODataBasicRequest</span></a>&lt;T&gt;
<ul>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataRetrieveRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataRetrieveRequest</span></a>&lt;T&gt; (also extends org.apache.olingo.client.api.communication.request.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/ODataBatchableRequest.html" title="interface in org.apache.olingo.client.api.communication.request">ODataBatchableRequest</a>)
<ul>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/EdmMetadataRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">EdmMetadataRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataDeltaRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataEntityRequest</span></a>&lt;E&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataEntitySetIteratorRequest</span></a>&lt;ES,E&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataEntitySetRequest</span></a>&lt;ES&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataMediaRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataMediaRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataPropertyRequest</span></a>&lt;T&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataServiceDocumentRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataValueRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/XMLMetadataRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">XMLMetadataRequest</span></a></li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.olingo.client.api.communication.request.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/ODataBatchableRequest.html" title="interface in org.apache.olingo.client.api.communication.request"><span class="typeNameLink">ODataBatchableRequest</span></a>
<ul>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataRetrieveRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataRetrieveRequest</span></a>&lt;T&gt; (also extends org.apache.olingo.client.api.communication.request.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/ODataBasicRequest.html" title="interface in org.apache.olingo.client.api.communication.request">ODataBasicRequest</a>&lt;T&gt;)
<ul>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/EdmMetadataRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">EdmMetadataRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataDeltaRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataEntityRequest</span></a>&lt;E&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataEntitySetIteratorRequest</span></a>&lt;ES,E&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataEntitySetRequest</span></a>&lt;ES&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataMediaRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataMediaRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataPropertyRequest</span></a>&lt;T&gt;</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataServiceDocumentRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataValueRequest</span></a></li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/XMLMetadataRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">XMLMetadataRequest</span></a></li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/ODataRawRequest.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">ODataRawRequest</span></a></li>
</ul>
</li>
<li type="circle">org.apache.olingo.client.api.communication.request.retrieve.<a href="../../../../../../../../org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.html" title="interface in org.apache.olingo.client.api.communication.request.retrieve"><span class="typeNameLink">RetrieveRequestFactory</span></a></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>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</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><a href="../../../../../../../../org/apache/olingo/client/api/communication/request/invoke/package-tree.html">Prev</a></li>
<li><a href="../../../../../../../../org/apache/olingo/client/api/communication/request/streamed/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/olingo/client/api/communication/request/retrieve/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.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>
