org.openrdf.query.algebra.evaluation
Class QueryBindingSet

java.lang.Object
  extended by org.openrdf.query.algebra.evaluation.QueryBindingSet
All Implemented Interfaces:
Iterable<Binding>, BindingSet

public class QueryBindingSet
extends Object
implements BindingSet

An implementation of the BindingSet interface that is used to evalate query object models. This implementations differs from MapBindingSet in that it maps variable names to Value objects and that the Binding objects are created lazily.


Constructor Summary
QueryBindingSet()
           
QueryBindingSet(BindingSet bindingSet)
           
QueryBindingSet(int capacity)
           
 
Method Summary
 void addAll(BindingSet bindingSet)
           
 void addBinding(Binding binding)
          Adds a new binding to the solution.
 void addBinding(String name, Value value)
          Adds a new binding to the solution.
 boolean equals(Object other)
          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.
 void removeAll(Collection<String> bindingNames)
           
 void removeBinding(String name)
           
 void retainAll(Collection<String> bindingNames)
           
 void setBinding(Binding binding)
           
 void setBinding(String name, Value value)
           
 int size()
          Returns the number of bindings in this BindingSet.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QueryBindingSet

public QueryBindingSet()

QueryBindingSet

public QueryBindingSet(int capacity)

QueryBindingSet

public QueryBindingSet(BindingSet bindingSet)
Method Detail

addAll

public void addAll(BindingSet bindingSet)

addBinding

public void addBinding(Binding binding)
Adds a new binding to the solution. The binding's name must not already be part of this solution.

Parameters:
binding - The binding to add this this BindingSet.

addBinding

public void addBinding(String name,
                       Value value)
Adds a new binding to the solution. The binding's name must not already be part of this solution.

Parameters:
name - The binding's name, must not be bound in this solution already.
value - The binding's value.

setBinding

public void setBinding(Binding binding)

setBinding

public void setBinding(String name,
                       Value value)

removeBinding

public void removeBinding(String name)

removeAll

public void removeAll(Collection<String> bindingNames)

retainAll

public void retainAll(Collection<String> bindingNames)

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

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.

equals

public boolean equals(Object other)
Description copied from interface: BindingSet
Compares a BindingSet object to another object.

Specified by:
equals in interface BindingSet
Overrides:
equals in class Object
Parameters:
other - 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

public int hashCode()
Description copied from interface: BindingSet
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.hashCode();
 }
 
Note: the calculated hash code intentionally does not dependent on the order in which the bindings are iterated over.

Specified by:
hashCode in interface BindingSet
Overrides:
hashCode in class Object
Returns:
A hash code for the BindingSet.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2001-2008 Aduna. All Rights Reserved.