Class BindingRepository<T>
- All Implemented Interfaces:
Iterable<Map.Entry<UriPattern,
T>>
This is a mutable repository of bindings from UriPattern
s to some target type T. The ContainerBuilder
has a mapping of named instances of this class for RequestHandler
s, and is used to
configure the set of BindingSet
s that eventually become part of the active Container
.
- Author:
- Simon Thoresen Hult
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionactivate()
Creates and returns an immutableBindingSet
that contains the bindings of this BindingRepository.void
Creates aUriPattern
from the given pattern string, and callsput(UriPattern, Object)
.void
Convenient method for callingbind(String, Object)
for all entries in a collection of bindings.void
clear()
Removes all bindings from this repository.iterator()
void
put
(UriPattern uriPattern, T target) Binds the given target to the givenUriPattern
.void
putAll
(Iterable<Map.Entry<UriPattern, T>> bindings) Convenient method for callingput(UriPattern, Object)
for all entries in a collection of bindings.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
-
Constructor Details
-
BindingRepository
public BindingRepository()
-
-
Method Details
-
bind
Creates a
UriPattern
from the given pattern string, and callsput(UriPattern, Object)
.- Parameters:
uriPattern
- The URI pattern to parse and bind to the target.target
- The target to assign to the URI pattern.- Throws:
NullPointerException
- If any argument is null.IllegalArgumentException
- If the URI pattern string could not be parsed.
-
bindAll
Convenient method for calling
bind(String, Object)
for all entries in a collection of bindings.- Parameters:
bindings
- The collection of bindings to copy to this.- Throws:
NullPointerException
- If argument is null or contains null.
-
put
Binds the given target to the given
UriPattern
. Although all bindings will eventually be evaluated by a call toBindingSet.resolve(URI)
, where matching order is significant, the order in which bindings are added is NOT. Instead, the creation of theBindingSet
inactivate()
sorts the bindings in such a way that the more strict patterns are evaluated first. See class-level commentary onUriPattern
for more on this.- Parameters:
uriPattern
- The URI pattern to parse and bind to the target.target
- The target to assign to the URI pattern.- Throws:
NullPointerException
- If any argument is null.IllegalArgumentException
- If the pattern has already been bound to another target.
-
putAll
Convenient method for calling
put(UriPattern, Object)
for all entries in a collection of bindings.- Parameters:
bindings
- The collection of bindings to copy to this.- Throws:
NullPointerException
- If argument is null or contains null.
-
activate
Creates and returns an immutable
BindingSet
that contains the bindings of this BindingRepository. Notice that the BindingSet uses a snapshot of the current bindings so that this repository remains mutable and reusable.- Returns:
- The created BindingSet instance.
-
clear
public void clear()Removes all bindings from this repository. -
iterator
-