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 theBindingSetinterface.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classArrayBindingSet.ArrayBindingSetIteratorprivate static classArrayBindingSet.BindingToBindingNameIteratorprivate classArrayBindingSet.MinimallyAllocatingSet
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String[]bindingNamesprivate static org.slf4j.Loggerloggerprivate static longserialVersionUID(package private) java.util.List<java.lang.String>sortedBindingNamesprivate Value[]valuesprivate 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 voidaddBinding(Binding binding)Adds a binding to the binding set.BindinggetBinding(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 intgetIndex(java.lang.String bindingName)java.util.List<java.lang.String>getSortedBindingNames()ValuegetValue(java.lang.String bindingName)Gets the value of the binding with the specified name from this BindingSet.booleanhasBinding(java.lang.String bindingName)Checks whether this BindingSet has a binding with the specified name.booleanisEmpty()java.util.Iterator<Binding>iterator()Creates an iterator over the bindings in this BindingSet.voidsetBinding(java.lang.String name, Value value)voidsetBinding(Binding binding)intsize()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:BindingSetGets the names of the bindings in this BindingSet.- Specified by:
getBindingNamesin interfaceBindingSet- Returns:
- A set of binding names.
-
getValue
public Value getValue(java.lang.String bindingName)
Description copied from interface:BindingSetGets the value of the binding with the specified name from this BindingSet.- Specified by:
getValuein 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:BindingSetGets the binding with the specified name from this BindingSet.- Specified by:
getBindingin 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:BindingSetChecks whether this BindingSet has a binding with the specified name.- Specified by:
hasBindingin 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:BindingSetCreates 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:
iteratorin interfaceBindingSet- Specified by:
iteratorin interfacejava.lang.Iterable<Binding>
-
size
public int size()
Description copied from interface:BindingSetReturns the number of bindings in this BindingSet.- Specified by:
sizein 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:MutableBindingSetAdds a binding to the binding set.- Specified by:
addBindingin interfaceMutableBindingSet- Parameters:
binding- The binding to add to the binding set.
-
setBinding
public void setBinding(Binding binding)
- Specified by:
setBindingin interfaceMutableBindingSet
-
setBinding
public void setBinding(java.lang.String name, Value value)- Specified by:
setBindingin interfaceMutableBindingSet
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfaceBindingSet
-
-