<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>PrincipalCollection (Apache Shiro 1.11.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="PrincipalCollection (Apache Shiro 1.11.0 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":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";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav"><!-- Matomo --> <script>   var _paq = window._paq = window._paq || [];   /* tracker methods like "setCustomDimension" should be called before "trackPageView" */   /* We explicitly disable cookie tracking to avoid privacy issues */   _paq.push(['disableCookies']);   _paq.push(['trackPageView']);   _paq.push(['enableLinkTracking']);   (function() {     var u="//matomo.privacy.apache.org/";     _paq.push(['setTrackerUrl', u+'matomo.php']);     _paq.push(['setSiteId', '2']);     var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];     g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);   })(); </script> <!-- End Matomo Code -->
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PrincipalCollection.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" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.shiro.subject</a></div>
<h2 title="Interface PrincipalCollection" class="title">Interface PrincipalCollection</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="MutablePrincipalCollection.html" title="interface in org.apache.shiro.subject">MutablePrincipalCollection</a></code>, <code><a href="PrincipalMap.html" title="interface in org.apache.shiro.subject">PrincipalMap</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="SimplePrincipalCollection.html" title="class in org.apache.shiro.subject">SimplePrincipalCollection</a></code>, <code><a href="SimplePrincipalMap.html" title="class in org.apache.shiro.subject">SimplePrincipalMap</a></code></dd>
</dl>
<hr>
<pre>public interface <a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.40">PrincipalCollection</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">A collection of all principals associated with a corresponding <a href="Subject.html" title="interface in org.apache.shiro.subject"><code>Subject</code></a>.  A <em>principal</em> is
 just a security term for an identifying attribute, such as a username or user id or social security number or
 anything else that can be considered an 'identifying' attribute for a <code>Subject</code>.
 <p/>
 A PrincipalCollection organizes its internal principals based on the <code>Realm</code> where they came from when the
 Subject was first created.  To obtain the principal(s) for a specific Realm, see the <a href="#fromRealm(java.lang.String)"><code>fromRealm(java.lang.String)</code></a> method.  You
 can also see which realms contributed to this collection via the <a href="#getRealmNames()"><code>getRealmNames()</code></a> method.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.9</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getPrimaryPrincipal()"><code>getPrimaryPrincipal()</code></a>, 
<a href="#fromRealm(java.lang.String)"><code>fromRealm(String realmName)</code></a>, 
<a href="#getRealmNames()"><code>getRealmNames()</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asList()">asList</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a single Subject's principals retrieved from all configured Realms as a List, or an empty List if
 there are not any principals.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asSet()">asSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a single Subject's principals retrieved from all configured Realms as a Set, or an empty Set if there
 are not any principals.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#byType(java.lang.Class)">byType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns all principals assignable from the specified type, or an empty Collection if no principals of that
 type are contained.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromRealm(java.lang.String)">fromRealm</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;realmName)</code></th>
<td class="colLast">
<div class="block">Returns a single Subject's principals retrieved from the specified Realm <em>only</em> as a Collection, or an empty
 Collection if there are not any principals from that realm.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrimaryPrincipal()">getPrimaryPrincipal</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the primary principal used application-wide to uniquely identify the owning account/Subject.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRealmNames()">getRealmNames</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the realm names that this collection has principals for.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if this collection is empty, <code>false</code> otherwise.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#oneByType(java.lang.Class)">oneByType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns the first discovered principal assignable from the specified type, or <code>null</code> if there are none
 of the specified type.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink">iterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator()" title="class or interface in java.lang" class="externalLink">spliterator</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="getPrimaryPrincipal()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrimaryPrincipal</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.77">getPrimaryPrincipal</a>()</pre>
<div class="block">Returns the primary principal used application-wide to uniquely identify the owning account/Subject.
 <p/>
 The value is usually always a uniquely identifying attribute specific to the data source that retrieved the
 account data.  Some examples:
 <ul>
 <li>a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>UUID</code></a></li>
 <li>a <code>long</code> value such as a surrogate primary key in a relational database</li>
 <li>an LDAP UUID or static DN</li>
 <li>a String username unique across all user accounts</li>
 </ul>
 <h3>Multi-Realm Applications</h3>
 In a single-<code>Realm</code> application, typically there is only ever one unique principal to retain and that
 is the value returned from this method.  However, in a multi-<code>Realm</code> application, where the
 <code>PrincipalCollection</code> might retain principals across more than one realm, the value returned from this
 method should be the single principal that uniquely identifies the subject for the entire application.
 <p/>
 That value is of course application specific, but most applications will typically choose one of the primary
 principals from one of the <code>Realm</code>s.
 <p/>
 Shiro's default implementations of this interface make this
 assumption by usually simply returning <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink"><code>Iterable.iterator()</code></a>.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true#next()" title="class or interface in java.util" class="externalLink"><code>next()</code></a>, which just
 returns the first returned principal obtained from the first consulted/configured <code>Realm</code> during the
 authentication attempt.  This means in a multi-<code>Realm</code> application, <code>Realm</code> configuration order
 matters if you want to retain this default heuristic.
 <p/>
 If this heuristic is not sufficient, most Shiro end-users will need to implement a custom
 <a href="../authc/pam/AuthenticationStrategy.html" title="interface in org.apache.shiro.authc.pam"><code>AuthenticationStrategy</code></a>.  An <code>AuthenticationStrategy</code> has exact control
 over the <a href="PrincipalCollection.html" title="interface in org.apache.shiro.subject"><code>PrincipalCollection</code></a> returned at the end of an authentication attempt via the
 <code>AuthenticationStrategy#<a href="../authc/pam/AuthenticationStrategy.html#afterAllAttempts(org.apache.shiro.authc.AuthenticationToken,org.apache.shiro.authc.AuthenticationInfo)"><code>afterAllAttempts</code></a></code>
 implementation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the primary principal used to uniquely identify the owning account/Subject</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</li>
</ul>
<a id="oneByType(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>oneByType</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.88">oneByType</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
<div class="block">Returns the first discovered principal assignable from the specified type, or <code>null</code> if there are none
 of the specified type.
 <p/>
 Note that this will return <code>null</code> if the 'owning' subject has not yet logged in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the type of the principal that should be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a principal of the specified type or <code>null</code> if there isn't one of the specified type.</dd>
</dl>
</li>
</ul>
<a id="byType(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>byType</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;T&gt;&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.100">byType</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
<div class="block">Returns all principals assignable from the specified type, or an empty Collection if no principals of that
 type are contained.
 <p/>
 Note that this will return an empty Collection if the 'owning' subject has not yet logged in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the type of the principals that should be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Collection of principals that are assignable from the specified type, or
         an empty Collection if no principals of this type are associated.</dd>
</dl>
</li>
</ul>
<a id="asList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asList</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.110">asList</a>()</pre>
<div class="block">Returns a single Subject's principals retrieved from all configured Realms as a List, or an empty List if
 there are not any principals.
 <p/>
 Note that this will return an empty List if the 'owning' subject has not yet logged in.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a single Subject's principals retrieved from all configured Realms as a List.</dd>
</dl>
</li>
</ul>
<a id="asSet()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asSet</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.120">asSet</a>()</pre>
<div class="block">Returns a single Subject's principals retrieved from all configured Realms as a Set, or an empty Set if there
 are not any principals.
 <p/>
 Note that this will return an empty Set if the 'owning' subject has not yet logged in.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a single Subject's principals retrieved from all configured Realms as a Set.</dd>
</dl>
</li>
</ul>
<a id="fromRealm(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromRealm</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.132">fromRealm</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;realmName)</pre>
<div class="block">Returns a single Subject's principals retrieved from the specified Realm <em>only</em> as a Collection, or an empty
 Collection if there are not any principals from that realm.
 <p/>
 Note that this will return an empty Collection if the 'owning' subject has not yet logged in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>realmName</code> - the name of the Realm from which the principals were retrieved.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Subject's principals from the specified Realm only as a Collection or an empty Collection if there
         are not any principals from that realm.</dd>
</dl>
</li>
</ul>
<a id="getRealmNames()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRealmNames</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.139">getRealmNames</a>()</pre>
<div class="block">Returns the realm names that this collection has principals for.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the names of realms that this collection has one or more principals for.</dd>
</dl>
</li>
</ul>
<a id="isEmpty()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isEmpty</h4>
<pre class="methodSignature">boolean&nbsp;<a href="../../../../src-html/org/apache/shiro/subject/PrincipalCollection.html#line.146">isEmpty</a>()</pre>
<div class="block">Returns <code>true</code> if this collection is empty, <code>false</code> otherwise.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this collection is empty, <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PrincipalCollection.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" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
