Class ArrayBindingSet
- java.lang.Object
-
- org.eclipse.rdf4j.query.AbstractBindingSet
-
- org.eclipse.rdf4j.query.algebra.evaluation.ArrayBindingSet
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Iterable<Binding>
,BindingSet
,MutableBindingSet
@InternalUseOnly public class ArrayBindingSet extends AbstractBindingSet implements MutableBindingSet
An array implementation of theBindingSet
interface.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
ArrayBindingSet.ArrayBindingSetIterator
private static class
ArrayBindingSet.BindingToBindingNameIterator
private class
ArrayBindingSet.MinimallyAllocatingSet
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String[]
bindingNames
private static org.slf4j.Logger
logger
private static long
serialVersionUID
(package private) java.util.List<java.lang.String>
sortedBindingNames
private Value[]
values
private boolean[]
whichBindingsHaveBeenSet
-
Constructor Summary
Constructors Constructor Description ArrayBindingSet(java.lang.String... names)
Creates a new Array-based BindingSet for the supplied bindings names.ArrayBindingSet(ArrayBindingSet toCopy, java.lang.String... names)
ArrayBindingSet(BindingSet toCopy, java.util.Set<java.lang.String> names, java.lang.String[] namesArray)
-
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(java.lang.String bindingName)
Gets the binding with the specified name from this BindingSet.java.util.Set<java.lang.String>
getBindingNames()
Gets the names of the bindings in this BindingSet.java.util.function.BiConsumer<Value,ArrayBindingSet>
getDirectAddBinding(java.lang.String bindingName)
java.util.function.Function<ArrayBindingSet,Binding>
getDirectGetBinding(java.lang.String bindingName)
java.util.function.Function<ArrayBindingSet,Value>
getDirectGetValue(java.lang.String bindingName)
java.util.function.Function<ArrayBindingSet,java.lang.Boolean>
getDirectHasBinding(java.lang.String bindingName)
java.util.function.BiConsumer<Value,ArrayBindingSet>
getDirectSetBinding(java.lang.String bindingName)
This is used to generate a direct setter into the array to put a binding value into.private int
getIndex(java.lang.String bindingName)
java.util.List<java.lang.String>
getSortedBindingNames()
Value
getValue(java.lang.String bindingName)
Gets the value of the binding with the specified name from this BindingSet.boolean
hasBinding(java.lang.String bindingName)
Checks whether this BindingSet has a binding with the specified name.boolean
isEmpty()
java.util.Iterator<Binding>
iterator()
Creates an iterator over the bindings in this BindingSet.void
setBinding(java.lang.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 org.eclipse.rdf4j.query.MutableBindingSet
addBinding
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
logger
private static final org.slf4j.Logger logger
-
bindingNames
private final java.lang.String[] bindingNames
-
whichBindingsHaveBeenSet
private final boolean[] whichBindingsHaveBeenSet
-
values
private final Value[] values
-
sortedBindingNames
java.util.List<java.lang.String> sortedBindingNames
-
-
Constructor Detail
-
ArrayBindingSet
public ArrayBindingSet(java.lang.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, java.util.Set<java.lang.String> names, java.lang.String[] namesArray)
-
ArrayBindingSet
public ArrayBindingSet(ArrayBindingSet toCopy, java.lang.String... names)
-
-
Method Detail
-
getDirectSetBinding
public java.util.function.BiConsumer<Value,ArrayBindingSet> getDirectSetBinding(java.lang.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 java.util.function.BiConsumer<Value,ArrayBindingSet> getDirectAddBinding(java.lang.String bindingName)
-
getDirectGetBinding
public java.util.function.Function<ArrayBindingSet,Binding> getDirectGetBinding(java.lang.String bindingName)
-
getDirectGetValue
public java.util.function.Function<ArrayBindingSet,Value> getDirectGetValue(java.lang.String bindingName)
-
getDirectHasBinding
public java.util.function.Function<ArrayBindingSet,java.lang.Boolean> getDirectHasBinding(java.lang.String bindingName)
-
getIndex
private int getIndex(java.lang.String bindingName)
-
getBindingNames
public java.util.Set<java.lang.String> getBindingNames()
Description copied from interface:BindingSet
Gets the names of the bindings in this BindingSet.- Specified by:
getBindingNames
in interfaceBindingSet
- Returns:
- A set of binding names.
-
getValue
public Value getValue(java.lang.String bindingName)
Description copied from interface:BindingSet
Gets the value of the binding with the specified name from this BindingSet.- Specified by:
getValue
in interfaceBindingSet
- 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(java.lang.String bindingName)
Description copied from interface:BindingSet
Gets the binding with the specified name from this BindingSet.- Specified by:
getBinding
in interfaceBindingSet
- 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(java.lang.String bindingName)
Description copied from interface:BindingSet
Checks whether this BindingSet has a binding with the specified name.- Specified by:
hasBinding
in interfaceBindingSet
- Parameters:
bindingName
- The name of the binding.- Returns:
- true if this BindingSet has a binding with the specified name, false otherwise.
-
iterator
public java.util.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 interfaceBindingSet
- Specified by:
iterator
in interfacejava.lang.Iterable<Binding>
-
size
public int size()
Description copied from interface:BindingSet
Returns the number of bindings in this BindingSet.- Specified by:
size
in interfaceBindingSet
- Returns:
- The number of bindings in this BindingSet.
-
getSortedBindingNames
public java.util.List<java.lang.String> getSortedBindingNames()
-
addBinding
public void addBinding(Binding binding)
Description copied from interface:MutableBindingSet
Adds a binding to the binding set.- Specified by:
addBinding
in interfaceMutableBindingSet
- Parameters:
binding
- The binding to add to the binding set.
-
setBinding
public void setBinding(Binding binding)
- Specified by:
setBinding
in interfaceMutableBindingSet
-
setBinding
public void setBinding(java.lang.String name, Value value)
- Specified by:
setBinding
in interfaceMutableBindingSet
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceBindingSet
-
-