Package org.eclipse.rdf4j.query.algebra.evaluation

## Class ArrayBindingSet

- java.lang.Object
- - org.eclipse.rdf4j.query.AbstractBindingSet
  - - org.eclipse.rdf4j.query.algebra.evaluation.ArrayBindingSet

- All Implemented Interfaces:
    `Serializable`, `Iterable<Binding>`, `BindingSet`, `MutableBindingSet`

      @InternalUseOnly
      public class ArrayBindingSet
      extends AbstractBindingSet
      implements MutableBindingSet

  An array implementation of the `BindingSet` interface.
  Author:
    Jerven Bolleman
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ArrayBindingSet​(String... names)` | Creates a new Array-based BindingSet for the supplied bindings names.
    `ArrayBindingSet​(ArrayBindingSet toCopy, String... names)` |
    `ArrayBindingSet​(BindingSet toCopy, String... names)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addBinding​(Binding binding)` | Adds a binding to the binding set.
    `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.
    `BiConsumer<Value,​ArrayBindingSet>` | `getDirectAddBinding​(String bindingName)` |
    `Function<ArrayBindingSet,​Binding>` | `getDirectGetBinding​(String variableName)` |
    `Function<ArrayBindingSet,​Value>` | `getDirectGetValue​(String variableName)` |
    `Function<ArrayBindingSet,​Boolean>` | `getDirectHasBinding​(String bindingName)` |
    `BiConsumer<Value,​ArrayBindingSet>` | `getDirectSetBinding​(String bindingName)` | This is used to generate a direct setter into the array to put a binding value into.
    `List<String>` | `getSortedBindingNames()` |
    `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.
    `boolean` | `isEmpty()` |
    `Iterator<Binding>` | `iterator()` | Creates an iterator over the bindings in this BindingSet.
    `void` | `setBinding​(String name, Value value)` |
    `void` | `setBinding​(Binding binding)` |
    `int` | `size()` | Returns the number of bindings in this BindingSet.

    - ### Methods inherited from class org.eclipse.rdf4j.query.AbstractBindingSet

      `equals, hashCode, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.rdf4j.query.BindingSet

      `equals, hashCode`

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

      `forEach, spliterator`

    - ### Methods inherited from interface org.eclipse.rdf4j.query.MutableBindingSet

      `addBinding`

- - ### Constructor Detail

    - #### ArrayBindingSet

          public ArrayBindingSet​(String... names)

      Creates a new Array-based BindingSet for the supplied bindings names. The supplied list of binding names is assumed to be constant; care should be taken that the contents of this array doesn't change after supplying it to this solution.
      Parameters:
        `names` - The binding names.

    - #### ArrayBindingSet

          public ArrayBindingSet​(BindingSet toCopy,
                                 String... names)

    - #### ArrayBindingSet

          public ArrayBindingSet​(ArrayBindingSet toCopy,
                                 String... names)

  - ### Method Detail

    - #### getDirectSetBinding

          public BiConsumer<Value,​ArrayBindingSet> getDirectSetBinding​(String bindingName)

      This is used to generate a direct setter into the array to put a binding value into. Can be used to avoid many comparisons to the bindingNames.
      Parameters:
        `bindingName` - for which you want the setter
      Returns:
        the setter biconsumer which can operate on any ArrayBindingSet but should only be used on ones with an identical bindingNames array. Otherwise returns null.

    - #### getDirectAddBinding

          public BiConsumer<Value,​ArrayBindingSet> getDirectAddBinding​(String bindingName)

    - #### getDirectGetBinding

          public Function<ArrayBindingSet,​Binding> getDirectGetBinding​(String variableName)

    - #### getDirectGetValue

          public Function<ArrayBindingSet,​Value> getDirectGetValue​(String variableName)

    - #### getDirectHasBinding

          public Function<ArrayBindingSet,​Boolean> getDirectHasBinding​(String bindingName)

    - #### getBindingNames

          public Set<String> getBindingNames()

      Description copied from interface: `BindingSet`
      Gets the names of the bindings in this BindingSet.
      Specified by:
        `getBindingNames` in interface `BindingSet`
      Returns:
        A set of binding names.

    - #### getValue

          public Value getValue​(String bindingName)

      Description copied from interface: `BindingSet`
      Gets the value of the binding with the specified name from this BindingSet.
      Specified by:
        `getValue` in interface `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.

    - #### getBinding

          public Binding getBinding​(String bindingName)

      Description copied from interface: `BindingSet`
      Gets the binding with the specified name from this BindingSet.
      Specified by:
        `getBinding` in interface `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

          public boolean hasBinding​(String bindingName)

      Description copied from interface: `BindingSet`
      Checks whether this BindingSet has a binding with the specified name.
      Specified by:
        `hasBinding` in interface `BindingSet`
      Parameters:
        `bindingName` - The name of the binding.
      Returns:
        true if this BindingSet has a binding with the specified name, false otherwise.

    - #### iterator

          public Iterator<Binding> iterator()

      Description copied from interface: `BindingSet`
      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 `BindingSet`
      Specified by:
        `iterator` in interface `Iterable<Binding>`

    - #### size

          public int size()

      Description copied from interface: `BindingSet`
      Returns the number of bindings in this BindingSet.
      Specified by:
        `size` in interface `BindingSet`
      Returns:
        The number of bindings in this BindingSet.

    - #### getSortedBindingNames

          public List<String> getSortedBindingNames()

    - #### addBinding

          public void addBinding​(Binding binding)

      Description copied from interface: `MutableBindingSet`
      Adds a binding to the binding set.
      Specified by:
        `addBinding` in interface `MutableBindingSet`
      Parameters:
        `binding` - The binding to add to the binding set.

    - #### setBinding

          public void setBinding​(Binding binding)

      Specified by:
        `setBinding` in interface `MutableBindingSet`

    - #### setBinding

          public void setBinding​(String name,
                                 Value value)

      Specified by:
        `setBinding` in interface `MutableBindingSet`

    - #### isEmpty

          public boolean isEmpty()

      Specified by:
        `isEmpty` in interface `BindingSet`