Class ResolverHandler
- All Implemented Interfaces:
IResolverHandler
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRequestToResolver(IRequestResolver<?> resolver, IRequest<?> request) Method used to add a request to a resolver.Collection<IToken<?>> getRequestsAssignedToResolver(IRequestResolver<?> resolver) Method to get all requests currently assigned to a resolver.IRequestResolver<? extends IRequestable> getResolver(IToken<?> token) Method to get a resolver from a given token.IRequestResolver<? extends IRequestable> getResolverForRequest(IRequest<?> request) Method used to get a resolver from a given request token.IRequestResolver<? extends IRequestable> getResolverForRequest(IToken<?> requestToken) Method used to get a resolver from a given request token.booleanisBeingRemoved(IToken<?> id) Check if a resolver is in the progress of being removed.voidonColonyUpdate(Predicate<IRequest<?>> shouldTriggerReassign) Method used to reassign requests based on a predicatevoidprocessResolverForRemoval(Collection<IToken<?>> assignedResolvers, IToken<?> resolverToken) Internal method that handles the removal of a single resolvers that is attached to a provider that is being removed.IToken<?> registerResolver(IRequestResolver<? extends IRequestable> resolver) Method used to register a resolver.Collection<IToken<?>> registerResolvers(IRequestResolver<?>... resolvers) Method used to register multiple resolvers simultaneouslyCollection<IToken<?>> registerResolvers(Collection<IRequestResolver<?>> resolvers) Method used to register multiple resolvers simultaneouslyvoidremoveRequestFromResolver(IRequestResolver<?> resolver, IRequest<?> request) Method used to remove a request from a resolver.voidremoveResolver(IRequestResolver<?> resolver) Method used to remove a registered resolver.voidremoveResolver(IToken<?> token) Method used to remove a registered resolver.voidremoveResolverInternal(IRequestResolver<?> resolver) voidremoveResolvers(IRequestResolver<?>... resolvers) Method used to remove a multiple registered resolvers.voidremoveResolvers(Iterable<IRequestResolver<?>> resolvers) Method used to remove a multiple registered resolvers.
-
Constructor Details
-
ResolverHandler
-
-
Method Details
-
getManager
- Specified by:
getManagerin interfaceIResolverHandler
-
registerResolvers
Method used to register multiple resolvers simultaneouslyIs only used internally. The method modifies the resolverBiMap that is used to track resolvers.
- Specified by:
registerResolversin interfaceIResolverHandler- Parameters:
resolvers- The resolvers to register.- Returns:
- The tokens of the resolvers that when registered.
- Throws:
IllegalArgumentException- is thrown when an IllegalArgumentException is thrown by the registerResolver method for any of the given Resolvers.
-
registerResolver
Method used to register a resolver.Is only used internally. The method modifies the resolverBiMap that is used to track which resolver are registered.
- Specified by:
registerResolverin interfaceIResolverHandler- Parameters:
resolver- The resolver to register- Returns:
- The token of the newly registered resolver
- Throws:
IllegalArgumentException- is thrown when either the token attached to the resolver is already registered or the resolver is already registered with a different token
-
registerResolvers
Method used to register multiple resolvers simultaneouslyIs only used internally. The method modifies the resolverBiMap that is used to track resolvers.
- Specified by:
registerResolversin interfaceIResolverHandler- Parameters:
resolvers- The resolvers to register.- Returns:
- The tokens of the resolvers that when registered.
- Throws:
IllegalArgumentException- is thrown when an IllegalArgumentException is thrown by the registerResolver method for any of the given Resolvers.
-
removeResolver
Method used to remove a registered resolver.Is only used internally. The method modifies the resolverBiMap that is used to track resolvers.
- Specified by:
removeResolverin interfaceIResolverHandler- Parameters:
token- The token of the resolver to remove.- Throws:
IllegalArgumentException- is thrown when the given resolver is not registered or the token of the given resolver is not registered to the same resolver.
-
removeResolver
Method used to remove a registered resolver.Is only used internally. The method modifies the resolverBiMap that is used to track resolvers.
- Specified by:
removeResolverin interfaceIResolverHandler- Parameters:
resolver- The resolver to remove- Throws:
IllegalArgumentException- is thrown when the given resolver is not registered or the token of the given resolver is not registered to the same resolver.
-
processResolverForRemoval
public void processResolverForRemoval(Collection<IToken<?>> assignedResolvers, IToken<?> resolverToken) Internal method that handles the removal of a single resolvers that is attached to a provider that is being removed.- Specified by:
processResolverForRemovalin interfaceIResolverHandler- Parameters:
assignedResolvers- The list of resolvers which are being removed.resolverToken- The id of the resolver which is being removed, needs to be part of the assignedResolvers list.
-
getRequestsAssignedToResolver
Method to get all requests currently assigned to a resolver.- Specified by:
getRequestsAssignedToResolverin interfaceIResolverHandler- Parameters:
resolver- The resolver to get the requests from.- Returns:
- A collection with requests tokens.
-
getResolver
Method to get a resolver from a given token.Is only used internally. Querries the resolverBiMap to get the resolver for a given Token.
- Specified by:
getResolverin interfaceIResolverHandler- Parameters:
token- The token of the resolver to look up.- Returns:
- The resolver registered with the given token.
- Throws:
IllegalArgumentException- is thrown when the given token is not registered to any IRequestResolver
-
removeResolverInternal
- Specified by:
removeResolverInternalin interfaceIResolverHandler
-
removeResolvers
Method used to remove a multiple registered resolvers.Is only used internally. The method modifies the resolverBiMap that is used to track resolvers.
- Specified by:
removeResolversin interfaceIResolverHandler- Parameters:
resolvers- The resolvers to remove.- Throws:
IllegalArgumentException- is thrown when removeResolver throws an IllegalArgumentException for any of the given resolvers.
-
removeResolvers
Method used to remove a multiple registered resolvers.Is only used internally. The method modifies the resolverBiMap that is used to track resolvers.
- Specified by:
removeResolversin interfaceIResolverHandler- Parameters:
resolvers- The resolvers to remove.- Throws:
IllegalArgumentException- is thrown when removeResolver throws an IllegalArgumentException for any of the given resolvers.
-
addRequestToResolver
Method used to add a request to a resolver.Is only used internally. The method modifies the resolverRequestMap that is used to track which resolver handles which request.
- Specified by:
addRequestToResolverin interfaceIResolverHandler- Parameters:
resolver- The resolver to add the request to.request- The request to add to the resolver.
-
removeRequestFromResolver
Method used to remove a request from a resolver.Is only used internally. The method modifies the resolverRequestMap that is used to track which resolver handles which request.
- Specified by:
removeRequestFromResolverin interfaceIResolverHandler- Parameters:
resolver- The resolver to remove the given request from.request- The request to remove.- Throws:
IllegalArgumentException- is thrown when the resolver is unknown, or when the given request is not registered to the given resolver.
-
getResolverForRequest
Method used to get a resolver from a given request token.- Specified by:
getResolverForRequestin interfaceIResolverHandler- Parameters:
requestToken- The token of a request a the assigned resolver is requested for.- Returns:
- The resolver for the request with the given token.
- Throws:
IllegalArgumentException- when the token is unknown or the request is not assigned yet.
-
getResolverForRequest
Method used to get a resolver from a given request token.- Specified by:
getResolverForRequestin interfaceIResolverHandler- Parameters:
request- The request a the assigned resolver is requested for.- Returns:
- The resolver for the request.
- Throws:
IllegalArgumentException- when the token is unknown or the request is not assigned yet.
-
onColonyUpdate
Method used to reassign requests based on a predicate- Specified by:
onColonyUpdatein interfaceIResolverHandler- Parameters:
shouldTriggerReassign- the predicate to determine whether a request should be reassigned
-
isBeingRemoved
Description copied from interface:IResolverHandlerCheck if a resolver is in the progress of being removed.- Specified by:
isBeingRemovedin interfaceIResolverHandler- Parameters:
id- the id of the resolver to check.- Returns:
- true if so.
-