Class ContainerList.Builder

java.lang.Object
com.github.cowwoc.tokenbucket.ContainerList.Builder
Enclosing class:
ContainerList

public static final class ContainerList.Builder extends Object
Builds a ContainerList.
  • Method Details

    • consumptionPolicy

      public ConsumptionPolicy consumptionPolicy()
      Returns the consumption policy indicating how to consume tokens from children containers.
      Returns:
      the consumption policy
    • consumeFromOne

      public ContainerList.Builder consumeFromOne(SelectionPolicy selectionPolicy)
      Indicates that the list should delegate to the first child that has sufficient number of tokens available.
      Parameters:
      selectionPolicy - determines the order in which buckets are evaluated
      Returns:
      this
      Throws:
      NullPointerException - if selectionPolicy is null
    • consumeFromAll

      public ContainerList.Builder consumeFromAll()
      Indicates that the list should consume tokens from all children simultaneously.
      Returns:
      this
    • listeners

      public List<ContainerListener> listeners()
      Returns the event listeners associated with this list.
      Returns:
      this
    • addListener

      public ContainerList.Builder addListener(ContainerListener listener)
      Adds an event listener to the list.
      Parameters:
      listener - a listener
      Returns:
      this
      Throws:
      NullPointerException - if listener is null
    • children

      public List<Container> children()
      Returns the children containers.
      Returns:
      the children containers
    • addBucket

      public ContainerList.Builder addBucket(Function<Bucket.Builder,Bucket> bucketBuilder)
      Adds a Bucket to this list.
      Parameters:
      bucketBuilder - builds the Bucket
      Returns:
      this
      Throws:
      NullPointerException - if bucketBuilder is null
    • addContainerList

      public ContainerList.Builder addContainerList(Function<ContainerList.Builder,ContainerList> listBuilder)
      Adds a ContainerList to this list.
      Parameters:
      listBuilder - builds the ContainerList
      Returns:
      this
      Throws:
      NullPointerException - if listBuilder is null
    • userData

      public Object userData()
      Returns the user data associated with this list.
      Returns:
      the data associated with this list
    • userData

      public ContainerList.Builder userData(Object userData)
      Sets user data associated with this list.
      Parameters:
      userData - the data associated with this list
      Returns:
      this
    • build

      public ContainerList build()
      Builds a new ContainerList.
      Returns:
      a new ContainerList
      Throws:
      IllegalArgumentException - if buckets is empty
    • toString

      public String toString()
      Overrides:
      toString in class Object