<!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:42 CEST 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Uses of Package org.apache.olingo.server.api.processor (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 Package org.apache.olingo.server.api.processor (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 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/server/api/processor/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.server.api.processor" class="title">Uses of Package<br>org.apache.olingo.server.api.processor</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/server/api/processor/package-summary.html">org.apache.olingo.server.api.processor</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.netty.server.api">org.apache.olingo.netty.server.api</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.netty.server.core">org.apache.olingo.netty.server.core</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.olingo.server.api">org.apache.olingo.server.api</a></td>
<td class="colLast">
<div class="block">Olingo Server API</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.olingo.server.api.processor">org.apache.olingo.server.api.processor</a></td>
<td class="colLast">
<div class="block">Olingo Processors</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.netty.server.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/server/api/processor/package-summary.html">org.apache.olingo.server.api.processor</a> used by <a href="../../../../../../org/apache/olingo/netty/server/api/package-summary.html">org.apache.olingo.netty.server.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/server/api/processor/class-use/Processor.html#org.apache.olingo.netty.server.api">Processor</a>
<div class="block">Base interface for all processor types.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.netty.server.core">
<!--   -->
</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/server/api/processor/package-summary.html">org.apache.olingo.server.api.processor</a> used by <a href="../../../../../../org/apache/olingo/netty/server/core/package-summary.html">org.apache.olingo.netty.server.core</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/server/api/processor/class-use/Processor.html#org.apache.olingo.netty.server.core">Processor</a>
<div class="block">Base interface for all processor types.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.server.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/server/api/processor/package-summary.html">org.apache.olingo.server.api.processor</a> used by <a href="../../../../../../org/apache/olingo/server/api/package-summary.html">org.apache.olingo.server.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/server/api/processor/class-use/Processor.html#org.apache.olingo.server.api">Processor</a>
<div class="block">Base interface for all processor types.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.olingo.server.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/server/api/processor/package-summary.html">org.apache.olingo.server.api.processor</a> used by <a href="../../../../../../org/apache/olingo/server/api/processor/package-summary.html">org.apache.olingo.server.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/server/api/processor/class-use/ComplexCollectionProcessor.html#org.apache.olingo.server.api.processor">ComplexCollectionProcessor</a>
<div class="block">Processor interface for handling a collection of complex-type instances, e.g.,
 a property of an entity defined as collection of complex-type instances.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/EntityCollectionProcessor.html#org.apache.olingo.server.api.processor">EntityCollectionProcessor</a>
<div class="block">Processor interface for handling a collection of entities, e.g., an Entity Set.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/EntityProcessor.html#org.apache.olingo.server.api.processor">EntityProcessor</a>
<div class="block">Processor interface for handling a single instance of an Entity Type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/ErrorProcessor.html#org.apache.olingo.server.api.processor">ErrorProcessor</a>
<div class="block">Processor which is called if any error/exception occurs inside the library or another processor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/MetadataProcessor.html#org.apache.olingo.server.api.processor">MetadataProcessor</a>
<div class="block">Processor interface for handling the metadata document.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/PrimitiveCollectionProcessor.html#org.apache.olingo.server.api.processor">PrimitiveCollectionProcessor</a>
<div class="block">Processor interface for handling a collection of primitive-type instances, e.g.,
 a property of an entity defined as collection of primitive-type instances.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/PrimitiveProcessor.html#org.apache.olingo.server.api.processor">PrimitiveProcessor</a>
<div class="block">Processor interface for handling an instance of a primitive type, e.g., a primitive property of an entity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/Processor.html#org.apache.olingo.server.api.processor">Processor</a>
<div class="block">Base interface for all processor types.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/olingo/server/api/processor/class-use/ServiceDocumentProcessor.html#org.apache.olingo.server.api.processor">ServiceDocumentProcessor</a>
<div class="block">Processor interface for handling the service document.</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/server/api/processor/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&#x2013;2018 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
