package net.enilink.komma.core;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
/**
* Represents a fragment of a query and related binding values.
*/
public class QueryFragment {
static final IBindings<Object> EMPTY_BINDINGS = new IBindings<Object>() {
@Override
public Iterator<Object> iterator() {
return Collections.emptyList().iterator();
}
@Override
public Collection<String> getKeys() {
return Collections.emptyList();
}
@Override
public Object get(String key) {
return null;
}
};
public final String text;
public final IBindings<Object> bindings;
public QueryFragment(String text) {
this(text, EMPTY_BINDINGS);
}
public QueryFragment(String text, IBindings<Object> bindings) {
this.text = text;
this.bindings = bindings;
}
public void addParameters(IQuery<?> query) {
for (String key : bindings.getKeys()) {
query.setParameter(key, bindings.get(key));
}
}
@Override
public String toString() {
return text;
}
}