Record Class BindingPolicy

java.lang.Object
java.lang.Record
org.j7m.middleware.application.api.BindingPolicy
Record Components:
selection - target selection strategy
unavailable - behavior when no eligible target exists
waitLimit - maximum availability wait
pollInterval - bounded discovery polling interval
discoveryTimeout - maximum one discovery operation budget
invocationTimeout - default maximum one business invocation budget
maxCandidates - bounded candidate and generation-history capacity,1..256

public record BindingPolicy(BindingPolicy.Selection selection, BindingPolicy.Unavailable unavailable, Duration waitLimit, Duration pollInterval, Duration discoveryTimeout, Duration invocationTimeout, int maxCandidates) extends Record
Immutable host-owned limits and selection for one live binding; annotation policy IDs reference instances of this value. All deadlines also obey a shorter caller-supplied remaining budget.
  • Constructor Details

    • BindingPolicy

      public BindingPolicy(BindingPolicy.Selection selection, BindingPolicy.Unavailable unavailable, Duration waitLimit, Duration pollInterval, Duration discoveryTimeout, Duration invocationTimeout, int maxCandidates)
      Validates finite limits.
      Parameters:
      selection - deterministic selection
      unavailable - missing-target behavior
      waitLimit - positive bound at most30seconds
      pollInterval - 10milliseconds..30seconds
      discoveryTimeout - positive bound at most30seconds
      invocationTimeout - positive bound at most30seconds
      maxCandidates - 1..256
      Throws:
      IllegalArgumentException - for invalid bounds
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • selection

      public BindingPolicy.Selection selection()
      Returns the value of the selection record component.
      Returns:
      the value of the selection record component
    • unavailable

      public BindingPolicy.Unavailable unavailable()
      Returns the value of the unavailable record component.
      Returns:
      the value of the unavailable record component
    • waitLimit

      public Duration waitLimit()
      Returns the value of the waitLimit record component.
      Returns:
      the value of the waitLimit record component
    • pollInterval

      public Duration pollInterval()
      Returns the value of the pollInterval record component.
      Returns:
      the value of the pollInterval record component
    • discoveryTimeout

      public Duration discoveryTimeout()
      Returns the value of the discoveryTimeout record component.
      Returns:
      the value of the discoveryTimeout record component
    • invocationTimeout

      public Duration invocationTimeout()
      Returns the value of the invocationTimeout record component.
      Returns:
      the value of the invocationTimeout record component
    • maxCandidates

      public int maxCandidates()
      Returns the value of the maxCandidates record component.
      Returns:
      the value of the maxCandidates record component