Class BindingRepository<T>

java.lang.Object
com.yahoo.jdisc.application.BindingRepository<T>
All Implemented Interfaces:
Iterable<Map.Entry<UriPattern,T>>

public class BindingRepository<T> extends Object implements Iterable<Map.Entry<UriPattern,T>>

This is a mutable repository of bindings from UriPatterns to some target type T. The ContainerBuilder has a mapping of named instances of this class for RequestHandlers, and is used to configure the set of BindingSets that eventually become part of the active Container.

Author:
Simon Thoresen Hult
  • Constructor Details

    • BindingRepository

      public BindingRepository()
  • Method Details

    • bind

      public void bind(String uriPattern, T target)

      Creates a UriPattern from the given pattern string, and calls put(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

      public void bindAll(Map<String,T> bindings)

      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

      public void put(UriPattern uriPattern, T target)

      Binds the given target to the given UriPattern. Although all bindings will eventually be evaluated by a call to BindingSet.resolve(URI), where matching order is significant, the order in which bindings are added is NOT. Instead, the creation of the BindingSet in activate() sorts the bindings in such a way that the more strict patterns are evaluated first. See class-level commentary on UriPattern 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

      public void putAll(Iterable<Map.Entry<UriPattern,T>> bindings)

      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

      public BindingSet<T> 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

      public Iterator<Map.Entry<UriPattern,T>> iterator()
      Specified by:
      iterator in interface Iterable<T>