Class AlgorithmRegistryImpl
java.lang.Object
se.swedenconnect.security.algorithms.impl.AlgorithmRegistryImpl
- All Implemented Interfaces:
AlgorithmRegistry
- Direct Known Subclasses:
StaticAlgorithmRegistry
Default implementation of the
AlgorithmRegistry
interface.- Author:
- Martin Lindström (martin@idsec.se), Stefan Santesson (stefan@idsec.se)
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.AlgorithmRegistryImpl
(List<Algorithm> registry) Constructor setting up the registry according to the supplied list. -
Method Summary
Modifier and TypeMethodDescriptiongetAlgorithm
(String algorithmUri) Gets the algorithm based on its URI.<T extends Algorithm>
TgetAlgorithm
(String algorithmUri, Class<T> clazz) Gets an algorithm based on its URI and type.getAlgorithm
(Predicate<Algorithm> predicate) Gets the first algorithm that matches the supplied predicate.<T extends Algorithm>
TgetAlgorithm
(Predicate<Algorithm> predicate, Class<T> clazz) Gets the first algorithm that matches the given type and supplied predicate.getAlgorithms
(Predicate<Algorithm> predicate) Gets all algorithms that matches the supplied predicate.getAlgorithms
(Predicate<Algorithm> predicate, Class<T> clazz) Gets all algorithms that matches the given type and the supplied predicate.void
Registers the given algorithm in the registry.void
unregister
(String algorithmUri) Removes the given algorithm from the registry.
-
Constructor Details
-
AlgorithmRegistryImpl
public AlgorithmRegistryImpl()Default constructor. -
AlgorithmRegistryImpl
Constructor setting up the registry according to the supplied list.Note: a copy of the supplied registry is made.
- Parameters:
registry
- initial contents of the registry
-
-
Method Details
-
register
Registers the given algorithm in the registry.- Parameters:
algorithm
- the algorithm to register
-
unregister
Removes the given algorithm from the registry.- Parameters:
algorithmUri
- the algorithm URI
-
getAlgorithm
Gets the algorithm based on its URI.- Specified by:
getAlgorithm
in interfaceAlgorithmRegistry
- Parameters:
algorithmUri
- the algorithm URI- Returns:
- the algorithm, or null if none is found
-
getAlgorithm
Gets an algorithm based on its URI and type.- Specified by:
getAlgorithm
in interfaceAlgorithmRegistry
- Type Parameters:
T
- the algorithm type- Parameters:
algorithmUri
- the algorithm URIclazz
- the type representing the algorithm- Returns:
- the algorithm, or null if none is found
-
getAlgorithm
Gets the first algorithm that matches the given type and supplied predicate.If more than one algorithm matches the supplied predicate, the one with the lowest order is returned.
- Specified by:
getAlgorithm
in interfaceAlgorithmRegistry
- Parameters:
predicate
- the predicate to applyclazz
- the type representing the algorithm- Returns:
- an Algorithm or null if no algorithms in the registry matches
- See Also:
-
getAlgorithm
Gets the first algorithm that matches the supplied predicate.If more than one algorithm matches the supplied predicate, the one with the lowest order is returned.
- Specified by:
getAlgorithm
in interfaceAlgorithmRegistry
- Parameters:
predicate
- the predicate to apply- Returns:
- an Algorithm or null if no algorithms in the registry matches
- See Also:
-
getAlgorithms
Gets all algorithms that matches the supplied predicate.The list is sorted with the lowest algorithms with the lowest order index first.
- Specified by:
getAlgorithms
in interfaceAlgorithmRegistry
- Parameters:
predicate
- the predicate to apply- Returns:
- a (possibly empty) list of Algorithm objects
-
getAlgorithms
Gets all algorithms that matches the given type and the supplied predicate.The list is sorted with the lowest algorithms with the lowest order index first.
- Specified by:
getAlgorithms
in interfaceAlgorithmRegistry
- Parameters:
predicate
- the predicate to applyclazz
- the type representing the algorithm- Returns:
- a (possibly empty) list of Algorithm objects
-