package org.basex.http.webdav;
import java.util.*;
import java.util.Map.Entry;
/**
* Query builder.
*
* @author BaseX Team 2005-17, BSD License
* @author Christian Gruen
*/
final class WebDAVQuery {
/** String query. */
private final String query;
/** Bindings. */
private final HashMap<String, String> bindings = new HashMap<>();
/**
* Constructor.
* @param query query string
*/
WebDAVQuery(final String query) {
this.query = query;
}
/**
* Binds a variable.
* @param name name of variable (without '$' sign).
* @param value value of variable
* @return self reference
*/
WebDAVQuery bind(final String name, final String value) {
bindings.put(name, value);
return this;
}
/**
* Returns the hash map entries.
* @return self reference
*/
Set<Entry<String, String>> entries() {
return bindings.entrySet();
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
for(final String v : bindings.keySet()) {
sb.append("declare variable $").append(v).append(" external;");
}
return sb.append(query).toString();
}
}