<!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:23 CET 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JPAEdmEntitySetView (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="JPAEdmEntitySetView (olingo-odata2-parent 2.0.10 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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="navBarCell1Rev">Class</li>
<li><a href="class-use/JPAEdmEntitySetView.html">Use</a></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><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityContainerView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityTypeView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntitySetView.html" target="_top">Frames</a></li>
<li><a href="JPAEdmEntitySetView.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.olingo.odata2.jpa.processor.api.model</div>
<h2 title="Interface JPAEdmEntitySetView" class="title">Interface JPAEdmEntitySetView</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model">JPAEdmBaseView</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">JPAEdmEntitySetView</span>
extends <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model">JPAEdmBaseView</a></pre>
<div class="block">A view on Java Persistence entity type and EDM entity sets. Java persistence
 entity types are converted into EDM entity types and EDM entity sets.
 <p>
 The implementation of the view provides access to EDM entity sets for the
 given JPA EDM entity type. The view acts as a container for consistent list
 of EDM entity sets. An EDM entity set is said to be consistent only if it has
 consistent EDM entity types.
 
 
 <p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityTypeView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model"><code>JPAEdmEntityTypeView</code></a></dd>
<dt><span class="simpleTagLabel">Do not implement this interface or derive from class.</span></dt>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/olingo/odata2/api/edm/provider/EntitySet.html" title="class in org.apache.olingo.odata2.api.edm.provider">EntitySet</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntitySetView.html#getConsistentEdmEntitySetList--">getConsistentEdmEntitySetList</a></span>()</code>
<div class="block">The method returns a list of consistent EDM entity sets.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/olingo/odata2/api/edm/provider/EntitySet.html" title="class in org.apache.olingo.odata2.api.edm.provider">EntitySet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntitySetView.html#getEdmEntitySet--">getEdmEntitySet</a></span>()</code>
<div class="block">The method returns an EDM entity set that is currently being processed.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityTypeView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model">JPAEdmEntityTypeView</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntitySetView.html#getJPAEdmEntityTypeView--">getJPAEdmEntityTypeView</a></span>()</code>
<div class="block">The method returns a JPA EDM entity type view that is currently being
 processed.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.olingo.odata2.jpa.processor.api.model.JPAEdmBaseView">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.olingo.odata2.jpa.processor.api.model.<a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model">JPAEdmBaseView</a></h3>
<code><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#clean--">clean</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#getBuilder--">getBuilder</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#getJPAEdmExtension--">getJPAEdmExtension</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#getJPAEdmMappingModelAccess--">getJPAEdmMappingModelAccess</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#getJPAMetaModel--">getJPAMetaModel</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#getpUnitName--">getpUnitName</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#isConsistent--">isConsistent</a>, <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmBaseView.html#isDefaultNamingSkipped--">isDefaultNamingSkipped</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getEdmEntitySet--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEdmEntitySet</h4>
<pre><a href="../../../../../../../../org/apache/olingo/odata2/api/edm/provider/EntitySet.html" title="class in org.apache.olingo.odata2.api.edm.provider">EntitySet</a>&nbsp;getEdmEntitySet()</pre>
<div class="block">The method returns an EDM entity set that is currently being processed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of type <a href="../../../../../../../../org/apache/olingo/odata2/api/edm/provider/EntitySet.html" title="class in org.apache.olingo.odata2.api.edm.provider"><code>EntitySet</code></a></dd>
</dl>
</li>
</ul>
<a name="getConsistentEdmEntitySetList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConsistentEdmEntitySetList</h4>
<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/olingo/odata2/api/edm/provider/EntitySet.html" title="class in org.apache.olingo.odata2.api.edm.provider">EntitySet</a>&gt;&nbsp;getConsistentEdmEntitySetList()</pre>
<div class="block">The method returns a list of consistent EDM entity sets.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a list of EDM entity sets</dd>
</dl>
</li>
</ul>
<a name="getJPAEdmEntityTypeView--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getJPAEdmEntityTypeView</h4>
<pre><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityTypeView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model">JPAEdmEntityTypeView</a>&nbsp;getJPAEdmEntityTypeView()</pre>
<div class="block">The method returns a JPA EDM entity type view that is currently being
 processed. JPA EDM entity set view is built from JPA EDM entity type
 view.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of type <a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityTypeView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model"><code>JPAEdmEntityTypeView</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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="navBarCell1Rev">Class</li>
<li><a href="class-use/JPAEdmEntitySetView.html">Use</a></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><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityContainerView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntityTypeView.html" title="interface in org.apache.olingo.odata2.jpa.processor.api.model"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmEntitySetView.html" target="_top">Frames</a></li>
<li><a href="JPAEdmEntitySetView.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</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>
