Package net.shibboleth.idp.session.context

# Class LogoutContext

java.lang.Object
org.opensaml.messaging.context.BaseContext
net.shibboleth.idp.session.context.LogoutContext

All Implemented Interfaces:
  `Iterable<BaseContext>`

public final class LogoutContext extends BaseContext
A `BaseContext` that holds a multimap of `SPSession` objects.

This context is used primarily to expose the `SPSession` objects for which logout is implicated.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.opensaml.messaging.context.BaseContext

`BaseContext.ContextSetNoRemoveIteratorDecorator, BaseContext.DeprecatedContextClassNameLookAside`

## Field Summary

Fields
Modifier and Type
Field
Description
`private boolean`
`flowComplete`
Signal that logout master flow is complete.
`private final Collection<IdPSession>`
`idpSessions`
Primary sessions to destroy.
`private final Map<String,SPSession>`
`keyedSessionMap`
An index of the session objects by an externally assigned key.
`private final Multimap<String,SPSession>`
`sessionMap`
SP sessions needing logout.

## Constructor Summary

Constructors
Constructor
Description
`LogoutContext()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`Collection<IdPSession>`
`getIdPSessions()`
Get a live collection of the IdP Sessions being destroyed.
`Map<String,SPSession>`
`getKeyedSessionMap()`
Get a live view of the map of sessions keyed by an external value.
`Multimap<String,SPSession>`
`getSessionMap()`
Get a live view of the map of service ID/session mappings.
`Collection<SPSession>`
`getSessions(String id)`
Get a live collection of sessions associated with a service.
`boolean`
`isFlowComplete()`
Gets whether the master logout flow has completed or requires further signaling.
`LogoutContext`
`setFlowComplete(boolean flag)`
Sets whether the master logout flow has completed or requires further signaling.

### Methods inherited from class org.opensaml.messaging.context.BaseContext

`addSubcontext, addSubcontext, clearSubcontexts, containsSubcontext, createSubcontext, ensureSubcontext, ensureSubcontext, getParent, getSubcontext, getSubcontext, getSubcontext, getSubcontext, iterator, removeFromParent, removeSubcontext, removeSubcontext, setParent`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

## Field Details

### idpSessions

@Nonnull private final Collection<IdPSession> idpSessions
Primary sessions to destroy.

### sessionMap

@Nonnull private final Multimap<String,SPSession> sessionMap
SP sessions needing logout.

### keyedSessionMap

@Nonnull private final Map<String,SPSession> keyedSessionMap
An index of the session objects by an externally assigned key.

### flowComplete

private boolean flowComplete
Signal that logout master flow is complete.

## Constructor Details

### LogoutContext

public LogoutContext()
Constructor.

## Method Details

### getIdPSessions

@Nonnull @Live public Collection<IdPSession> getIdPSessions()
Get a live collection of the IdP Sessions being destroyed.

Returns:
  sessions being destroyed
Since:
  4.0.0

### getSessionMap

@Nonnull @Live public Multimap<String,SPSession> getSessionMap()
Get a live view of the map of service ID/session mappings.

Returns:
  service ID/session mappings

### getKeyedSessionMap

@Nonnull @Live public Map<String,SPSession> getKeyedSessionMap()
Get a live view of the map of sessions keyed by an external value.

This map can be used to index the sessions in the context according to a particular use case.

Returns:
  keyed session mappings

### getSessions

@Nonnull @Live public Collection<SPSession> getSessions(@Nonnull @NotEmpty String id)
Get a live collection of sessions associated with a service.

Parameters:
  `id` - name of service to retrieve
Returns:
  the sessions for the service

### isFlowComplete

public boolean isFlowComplete()
Gets whether the master logout flow has completed or requires further signaling.

Returns:
  true iff the flow is completed
Since:
  5.1.0

### setFlowComplete

@Nonnull public LogoutContext setFlowComplete(boolean flag)
Sets whether the master logout flow has completed or requires further signaling.

Parameters:
  `flag` - flag to set
Returns:
  this context
Since:
  5.1.0