package org.fastcatsearch.query;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.fastcatsearch.common.io.Streamable;
import org.fastcatsearch.ir.io.DataInput;
import org.fastcatsearch.ir.io.DataOutput;
public class QueryMap extends HashMap<String, String> implements Streamable {
private static final long serialVersionUID = 6450718773572982562L;
private String collectionId;
private String queryString;
public QueryMap(){
}
public QueryMap(Map<String, String> map) {
super(map);
}
public String collectionId(){
return collectionId;
}
public void setId(String collectionId){
this.collectionId = collectionId;
}
public String queryString(){
if(queryString == null){
queryString = "";
int i = 0;
for(Map.Entry<String, String> entry : entrySet()){
if(i++ > 0){
queryString += "&";
}
queryString += entry.toString();
}
}
return queryString;
}
@Override
public QueryMap clone(){
QueryMap queryMap = (QueryMap) super.clone();
queryMap.collectionId = this.collectionId;
return queryMap;
}
@Override
public void readFrom(DataInput input) throws IOException {
if(input.readBoolean()){
collectionId = input.readString();
}
putAll((Map<String, String>) input.readGenericValue());
}
@Override
public void writeTo(DataOutput output) throws IOException {
if(collectionId != null){
output.writeBoolean(true);
output.writeString(collectionId);
}else{
output.writeBoolean(false);
}
output.writeGenericValue(this);
}
}