<!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 Wed Dec 06 14:36:26 CET 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Uses of Package org.apache.olingo.odata2.api.uri.info (olingo-odata2-parent 2.0.10 API)</title>
<meta name="date" content="2017-12-06">
<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 Package org.apache.olingo.odata2.api.uri.info (olingo-odata2-parent 2.0.10 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 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/odata2/api/uri/info/package-use.html" target="_top">Frames</a></li>
<li><a href="package-use.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 title="Uses of Package org.apache.olingo.odata2.api.uri.info" class="title">Uses of Package<br>org.apache.olingo.odata2.api.uri.info</h1>
</div>
<div class="contentContainer">
<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/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</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.odata2.api.processor">org.apache.olingo.odata2.api.processor</a></td>
<td class="colLast">
<div class="block">Data Processor</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.api.processor.part">org.apache.olingo.odata2.api.processor.part</a></td>
<td class="colLast">
<div class="block">Processor Parts</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.api.uri">org.apache.olingo.odata2.api.uri</a></td>
<td class="colLast">
<div class="block">URI Parser Facade</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.jpa.processor.api">org.apache.olingo.odata2.jpa.processor.api</a></td>
<td class="colLast">
<div class="block">OData JPA Processor API Library</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.jpa.processor.api.access">org.apache.olingo.odata2.jpa.processor.api.access</a></td>
<td class="colLast">
<div class="block">OData JPA Processor API Library - Java Persistence Access</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.jpa.processor.ref.listeners">org.apache.olingo.odata2.jpa.processor.ref.listeners</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.jpa.processor.ref.util">org.apache.olingo.odata2.jpa.processor.ref.util</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.odata2.ref.processor">org.apache.olingo.odata2.ref.processor</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.api.processor">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/api/processor/package-summary.html">org.apache.olingo.odata2.api.processor</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/DeleteUriInfo.html#org.apache.olingo.odata2.api.processor">DeleteUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for DELETE requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetComplexPropertyUriInfo.html#org.apache.olingo.odata2.api.processor">GetComplexPropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of complex properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityCountUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntityCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the count of a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkCountUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntityLinkCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntityLinkUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URI of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetCountUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntitySetCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksCountUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntitySetLinksCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntitySetLinksUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URIs of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.api.processor">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetFunctionImportUriInfo.html#org.apache.olingo.odata2.api.processor">GetFunctionImportUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for requests
 of function imports.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMediaResourceUriInfo.html#org.apache.olingo.odata2.api.processor">GetMediaResourceUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the media resource of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMetadataUriInfo.html#org.apache.olingo.odata2.api.processor">GetMetadataUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the metadata document.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetServiceDocumentUriInfo.html#org.apache.olingo.odata2.api.processor">GetServiceDocumentUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the service document.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetSimplePropertyUriInfo.html#org.apache.olingo.odata2.api.processor">GetSimplePropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of simple properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PostUriInfo.html#org.apache.olingo.odata2.api.processor">PostUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for POST requests.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PutMergePatchUriInfo.html#org.apache.olingo.odata2.api.processor">PutMergePatchUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for PUT, PATCH, or MERGE requests.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.api.processor.part">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/api/processor/part/package-summary.html">org.apache.olingo.odata2.api.processor.part</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/DeleteUriInfo.html#org.apache.olingo.odata2.api.processor.part">DeleteUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for DELETE requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetComplexPropertyUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetComplexPropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of complex properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityCountUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntityCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the count of a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkCountUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntityLinkCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntityLinkUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URI of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetCountUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntitySetCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksCountUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntitySetLinksCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntitySetLinksUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URIs of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetFunctionImportUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetFunctionImportUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for requests
 of function imports.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMediaResourceUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetMediaResourceUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the media resource of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMetadataUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetMetadataUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the metadata document.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetServiceDocumentUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetServiceDocumentUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the service document.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetSimplePropertyUriInfo.html#org.apache.olingo.odata2.api.processor.part">GetSimplePropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of simple properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PostUriInfo.html#org.apache.olingo.odata2.api.processor.part">PostUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for POST requests.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PutMergePatchUriInfo.html#org.apache.olingo.odata2.api.processor.part">PutMergePatchUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for PUT, PATCH, or MERGE requests.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.api.uri">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/api/uri/package-summary.html">org.apache.olingo.odata2.api.uri</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/DeleteUriInfo.html#org.apache.olingo.odata2.api.uri">DeleteUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for DELETE requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetComplexPropertyUriInfo.html#org.apache.olingo.odata2.api.uri">GetComplexPropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of complex properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityCountUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntityCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the count of a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkCountUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntityLinkCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntityLinkUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URI of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetCountUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntitySetCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksCountUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntitySetLinksCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntitySetLinksUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URIs of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.api.uri">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetFunctionImportUriInfo.html#org.apache.olingo.odata2.api.uri">GetFunctionImportUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for requests
 of function imports.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMediaResourceUriInfo.html#org.apache.olingo.odata2.api.uri">GetMediaResourceUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the media resource of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMetadataUriInfo.html#org.apache.olingo.odata2.api.uri">GetMetadataUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the metadata document.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetServiceDocumentUriInfo.html#org.apache.olingo.odata2.api.uri">GetServiceDocumentUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the service document.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetSimplePropertyUriInfo.html#org.apache.olingo.odata2.api.uri">GetSimplePropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of simple properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PostUriInfo.html#org.apache.olingo.odata2.api.uri">PostUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for POST requests.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PutMergePatchUriInfo.html#org.apache.olingo.odata2.api.uri">PutMergePatchUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for PUT, PATCH, or MERGE requests.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.jpa.processor.api">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/jpa/processor/api/package-summary.html">org.apache.olingo.odata2.jpa.processor.api</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/DeleteUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">DeleteUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for DELETE requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityCountUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetEntityCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the count of a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetEntityLinkUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URI of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetCountUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetEntitySetCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetEntitySetLinksUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URIs of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetFunctionImportUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">GetFunctionImportUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for requests
 of function imports.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PostUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">PostUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for POST requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PutMergePatchUriInfo.html#org.apache.olingo.odata2.jpa.processor.api">PutMergePatchUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for PUT, PATCH, or MERGE requests.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.jpa.processor.api.access">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/jpa/processor/api/access/package-summary.html">org.apache.olingo.odata2.jpa.processor.api.access</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/DeleteUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">DeleteUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for DELETE requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityCountUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetEntityCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the count of a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetEntityLinkUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URI of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetCountUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetEntitySetCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetEntitySetLinksUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URIs of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetFunctionImportUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">GetFunctionImportUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for requests
 of function imports.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PostUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">PostUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for POST requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PutMergePatchUriInfo.html#org.apache.olingo.odata2.jpa.processor.api.access">PutMergePatchUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for PUT, PATCH, or MERGE requests.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.jpa.processor.ref.listeners">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/jpa/processor/ref/listeners/package-summary.html">org.apache.olingo.odata2.jpa.processor.ref.listeners</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.jpa.processor.ref.listeners">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.jpa.processor.ref.listeners">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.jpa.processor.ref.util">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/jpa/processor/ref/util/package-summary.html">org.apache.olingo.odata2.jpa.processor.ref.util</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.jpa.processor.ref.util">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.odata2.ref.processor">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/package-summary.html">org.apache.olingo.odata2.api.uri.info</a> used by <a href="../../../../../../../org/apache/olingo/odata2/ref/processor/package-summary.html">org.apache.olingo.odata2.ref.processor</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/DeleteUriInfo.html#org.apache.olingo.odata2.ref.processor">DeleteUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for DELETE requests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetComplexPropertyUriInfo.html#org.apache.olingo.odata2.ref.processor">GetComplexPropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of complex properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityCountUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntityCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the count of a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkCountUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntityLinkCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to a single entity (also known as existence check).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityLinkUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntityLinkUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URI of a single entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetCountUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntitySetCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksCountUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntitySetLinksCountUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the number of links to entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetLinksUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntitySetLinksUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the URIs of entities.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntitySetUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntitySetUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of entities.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetEntityUriInfo.html#org.apache.olingo.odata2.ref.processor">GetEntityUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetFunctionImportUriInfo.html#org.apache.olingo.odata2.ref.processor">GetFunctionImportUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for requests
 of function imports.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetMediaResourceUriInfo.html#org.apache.olingo.odata2.ref.processor">GetMediaResourceUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of the media resource of a single entity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/GetSimplePropertyUriInfo.html#org.apache.olingo.odata2.ref.processor">GetSimplePropertyUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for GET requests
 of simple properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PostUriInfo.html#org.apache.olingo.odata2.ref.processor">PostUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for POST requests.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../../org/apache/olingo/odata2/api/uri/info/class-use/PutMergePatchUriInfo.html#org.apache.olingo.odata2.ref.processor">PutMergePatchUriInfo</a>
<div class="block">Access to the parts of the request URI that are relevant for PUT, PATCH, or MERGE requests.</div>
</td>
</tr>
</tbody>
</table>
</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 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/odata2/api/uri/info/package-use.html" target="_top">Frames</a></li>
<li><a href="package-use.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-2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>
