Class DefaultDynamicBackingStore<I,T>
java.lang.Object
net.shibboleth.oidc.metadata.impl.AbstractBackingStore<I,T>
net.shibboleth.oidc.metadata.impl.DefaultDynamicBackingStore<I,T>
- Type Parameters:
I- the metadata identifier type.T- the metadata type.
- All Implemented Interfaces:
BackingStore<I,,T> DynamicBackingStore<I,T>
@ThreadSafe
public class DefaultDynamicBackingStore<I,T>
extends AbstractBackingStore<I,T>
implements DynamicBackingStore<I,T>
Default implementation of a
DynamicBackingStore.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<I,MetadataManagementData<I>> Map holding management data for each entityID. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncomputeManagementDataIfAbsent(I identifier, Function<I, MetadataManagementData<I>> mappingFunction) Get the management data for the specified identifier.getManagementData(I identifier) Get the management data for the specified identifier.Get the set of entityIDs which currently have management data.voidremoveManagementData(I identifier) Remove the management data for the specified entityID.Methods inherited from class net.shibboleth.oidc.metadata.impl.AbstractBackingStore
getIndexedValues, getOrderedValuesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.oidc.metadata.BackingStore
getIndexedValues, getOrderedValues
-
Field Details
-
mgmtDataMap
Map holding management data for each entityID.
-
-
Constructor Details
-
DefaultDynamicBackingStore
public DefaultDynamicBackingStore()Constructor.
-
-
Method Details
-
computeManagementDataIfAbsent
@Nonnull public MetadataManagementData<I> computeManagementDataIfAbsent(@Nonnull I identifier, @Nonnull Function<I, MetadataManagementData<I>> mappingFunction) Get the management data for the specified identifier. If the management data does not exist it should be created using the supplied mapping function.Management data facilitates per-entity metadata locking and cache primitives e.g. next refresh time.
Should do so in a thread-safe way e.g. if two threads enter this method, only one should be allowed to create management data for the same identifier.
- Specified by:
computeManagementDataIfAbsentin interfaceDynamicBackingStore<I,T> - Parameters:
identifier- the identifier of the entity to find management data aboutmappingFunction- the function used to create a newMetadataManagementDatainstance if none exist.- Returns:
- a new or previously cache metadata management data.
-
getManagementData
Get the management data for the specified identifier. If the management data does not exist, null is returned.- Specified by:
getManagementDatain interfaceDynamicBackingStore<I,T> - Parameters:
identifier- the identifier of the entity to find management data about- Returns:
- the corresponding management data, or null if not found.
-
removeManagementData
Remove the management data for the specified entityID.- Specified by:
removeManagementDatain interfaceDynamicBackingStore<I,T> - Parameters:
identifier- the input identifier
-
getManagementDataIdentifiers
Get the set of entityIDs which currently have management data.- Specified by:
getManagementDataIdentifiersin interfaceDynamicBackingStore<I,T> - Returns:
- set of entityIDs, may be empty
-