org.apache.shiro.subject
Class SimplePrincipalCollection

java.lang.Object
  extended by org.apache.shiro.subject.SimplePrincipalCollection
All Implemented Interfaces:
Serializable, Iterable, MutablePrincipalCollection, PrincipalCollection

public class SimplePrincipalCollection
extends Object
implements MutablePrincipalCollection

A simple implementation of the MutablePrincipalCollection interface that tracks principals internally by storing them in a LinkedHashMap.

Since:
0.9
See Also:
Serialized Form

Constructor Summary
SimplePrincipalCollection()
           
SimplePrincipalCollection(Collection principals, String realmName)
           
SimplePrincipalCollection(Object principal, String realmName)
           
SimplePrincipalCollection(PrincipalCollection principals)
           
 
Method Summary
 void add(Object principal, String realmName)
          Adds the given principal to this collection.
 void addAll(Collection principals, String realmName)
          Adds all of the principals in the given collection to this collection.
 void addAll(PrincipalCollection principals)
          Adds all of the principals from the given principal collection to this collection.
 List asList()
          Returns a single Subject's principals retrieved from all configured Realms as a List, or an empty List if there are not any principals.
 Set asSet()
          Returns a single Subject's principals retrieved from all configured Realms as a Set, or an empty Set if there are not any principals.
<T> Collection<T>
byType(Class<T> type)
          Returns all principals assignable from the specified type, or an empty Collection if no principals of that type are contained.
 void clear()
          Removes all Principals in this collection.
 boolean equals(Object o)
           
 Collection fromRealm(String realmName)
          Returns a single Subject's principals retrieved from the specified Realm only as a Collection, or an empty Collection if there are not any principals from that realm.
 Object getPrimaryPrincipal()
          Returns the first available principal from any of the Realm principals, or null if there are no principals yet.
protected  Collection getPrincipalsLazy(String realmName)
           
 Set<String> getRealmNames()
          Returns the realm names that this collection has principals for.
 int hashCode()
           
 boolean isEmpty()
          Returns true if this collection is empty, false otherwise.
 Iterator iterator()
           
<T> T
oneByType(Class<T> type)
          Returns the first discovered principal assignable from the specified type, or null if there are none of the specified type.
 String toString()
          Returns a simple string representation suitable for printing.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimplePrincipalCollection

public SimplePrincipalCollection()

SimplePrincipalCollection

public SimplePrincipalCollection(Object principal,
                                 String realmName)

SimplePrincipalCollection

public SimplePrincipalCollection(Collection principals,
                                 String realmName)

SimplePrincipalCollection

public SimplePrincipalCollection(PrincipalCollection principals)
Method Detail

getPrincipalsLazy

protected Collection getPrincipalsLazy(String realmName)

getPrimaryPrincipal

public Object getPrimaryPrincipal()
Returns the first available principal from any of the Realm principals, or null if there are no principals yet.

The 'first available principal' is interpreted as the principal that would be returned by iterator().next().

Specified by:
getPrimaryPrincipal in interface PrincipalCollection
Returns:
the primary principal used to uniquely identify the owning account/Subject

add

public void add(Object principal,
                String realmName)
Description copied from interface: MutablePrincipalCollection
Adds the given principal to this collection.

Specified by:
add in interface MutablePrincipalCollection
Parameters:
principal - the principal to be added.
realmName - the realm this principal came from.

addAll

public void addAll(Collection principals,
                   String realmName)
Description copied from interface: MutablePrincipalCollection
Adds all of the principals in the given collection to this collection.

Specified by:
addAll in interface MutablePrincipalCollection
Parameters:
principals - the principals to be added.
realmName - the realm these principals came from.

addAll

public void addAll(PrincipalCollection principals)
Description copied from interface: MutablePrincipalCollection
Adds all of the principals from the given principal collection to this collection.

Specified by:
addAll in interface MutablePrincipalCollection
Parameters:
principals - the principals to add.

oneByType

public <T> T oneByType(Class<T> type)
Description copied from interface: PrincipalCollection
Returns the first discovered principal assignable from the specified type, or null if there are none of the specified type.

Note that this will return null if the 'owning' subject has not yet logged in.

Specified by:
oneByType in interface PrincipalCollection
Parameters:
type - the type of the principal that should be returned.
Returns:
a principal of the specified type or null if there isn't one of the specified type.

byType

public <T> Collection<T> byType(Class<T> type)
Description copied from interface: PrincipalCollection
Returns all principals assignable from the specified type, or an empty Collection if no principals of that type are contained.

Note that this will return an empty Collection if the 'owning' subject has not yet logged in.

Specified by:
byType in interface PrincipalCollection
Parameters:
type - the type of the principals that should be returned.
Returns:
a Collection of principals that are assignable from the specified type, or an empty Collection if no principals of this type are associated.

asList

public List asList()
Description copied from interface: PrincipalCollection
Returns a single Subject's principals retrieved from all configured Realms as a List, or an empty List if there are not any principals.

Note that this will return an empty List if the 'owning' subject has not yet logged in.

Specified by:
asList in interface PrincipalCollection
Returns:
a single Subject's principals retrieved from all configured Realms as a List.

asSet

public Set asSet()
Description copied from interface: PrincipalCollection
Returns a single Subject's principals retrieved from all configured Realms as a Set, or an empty Set if there are not any principals.

Note that this will return an empty Set if the 'owning' subject has not yet logged in.

Specified by:
asSet in interface PrincipalCollection
Returns:
a single Subject's principals retrieved from all configured Realms as a Set.

fromRealm

public Collection fromRealm(String realmName)
Description copied from interface: PrincipalCollection
Returns a single Subject's principals retrieved from the specified Realm only as a Collection, or an empty Collection if there are not any principals from that realm.

Note that this will return an empty Collection if the 'owning' subject has not yet logged in.

Specified by:
fromRealm in interface PrincipalCollection
Parameters:
realmName - the name of the Realm from which the principals were retrieved.
Returns:
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.

getRealmNames

public Set<String> getRealmNames()
Description copied from interface: PrincipalCollection
Returns the realm names that this collection has principals for.

Specified by:
getRealmNames in interface PrincipalCollection
Returns:
the names of realms that this collection has one or more principals for.

isEmpty

public boolean isEmpty()
Description copied from interface: PrincipalCollection
Returns true if this collection is empty, false otherwise.

Specified by:
isEmpty in interface PrincipalCollection
Returns:
true if this collection is empty, false otherwise.

clear

public void clear()
Description copied from interface: MutablePrincipalCollection
Removes all Principals in this collection.

Specified by:
clear in interface MutablePrincipalCollection

iterator

public Iterator iterator()
Specified by:
iterator in interface Iterable

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Returns a simple string representation suitable for printing.

Overrides:
toString in class Object
Returns:
a simple string representation suitable for printing.
Since:
1.0


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.