Package org.eclipse.rdf4j.query

## Interface BindingSet

- All Superinterfaces:
    `Iterable<Binding>`, `Serializable`
  All Known Implementing Classes:
    `AbstractBindingSet`, `EmptyBindingSet`, `ListBindingSet`, `MapBindingSet`, `QueryBindingSet`, `SPARQLQueryBindingSet`

      public interface BindingSet
      extends Iterable<Binding>, Serializable

  A BindingSet is a set of named value bindings, which is used a.o. to represent a single query solution. Values are indexed by name of the binding which typically corresponds to the names of the variables used in the projection of the orginal query.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object o)` | Compares a BindingSet object to another object.
    `Binding` | `getBinding​(String bindingName)` | Gets the binding with the specified name from this BindingSet.
    `Set<String>` | `getBindingNames()` | Gets the names of the bindings in this BindingSet.
    `Value` | `getValue​(String bindingName)` | Gets the value of the binding with the specified name from this BindingSet.
    `boolean` | `hasBinding​(String bindingName)` | Checks whether this BindingSet has a binding with the specified name.
    `int` | `hashCode()` | The hash code of a binding is defined as the bit-wise XOR of the hash codes of its bindings:
    `Iterator<Binding>` | `iterator()` | Creates an iterator over the bindings in this BindingSet.
    `int` | `size()` | Returns the number of bindings in this BindingSet.

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Method Detail

    - #### iterator

          Iterator<Binding> iterator()

      Creates an iterator over the bindings in this BindingSet. This only returns bindings with non-null values. An implementation is free to return the bindings in arbitrary order.
      Specified by:
        `iterator` in interface `Iterable<Binding>`

    - #### getBindingNames

          Set<String> getBindingNames()

      Gets the names of the bindings in this BindingSet.
      Returns:
        A set of binding names.

    - #### getBinding

          Binding getBinding​(String bindingName)

      Gets the binding with the specified name from this BindingSet.
      Parameters:
        `bindingName` - The name of the binding.
      Returns:
        The binding with the specified name, or null if there is no such binding in this BindingSet.

    - #### hasBinding

          boolean hasBinding​(String bindingName)

      Checks whether this BindingSet has a binding with the specified name.
      Parameters:
        `bindingName` - The name of the binding.
      Returns:
        true if this BindingSet has a binding with the specified name, false otherwise.

    - #### getValue

          Value getValue​(String bindingName)

      Gets the value of the binding with the specified name from this BindingSet.
      Parameters:
        `bindingName` - The name of the binding.
      Returns:
        The value of the binding with the specified name, or null if there is no such binding in this BindingSet.

    - #### size

          int size()

      Returns the number of bindings in this BindingSet.
      Returns:
        The number of bindings in this BindingSet.

    - #### equals

          boolean equals​(Object o)

      Compares a BindingSet object to another object.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `o` - The object to compare this binding to.
      Returns:
        true if the other object is an instance of `BindingSet` and it contains the same set of bindings (disregarding order), false otherwise.

    - #### hashCode

          int hashCode()

      The hash code of a binding is defined as the bit-wise XOR of the hash codes of its bindings:

           int hashCode = 0;

           for (Binding binding : this) {
                  hashCode ˆ= binding.getName().hashCode() ˆ binding.getValue().hashCode();
           }

      Note: the calculated hash code intentionally does not depend on the order in which the bindings are iterated over.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        A hash code for the BindingSet.