package com.bagri.client.hazelcast.serialize.query;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl;
import com.bagri.core.query.ExpressionContainer;
import com.bagri.core.query.QueryBuilder;
import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;
import com.hazelcast.nio.serialization.StreamSerializer;
public class QueryBuilderSerializer implements StreamSerializer<QueryBuilder> {
@Override
public void destroy() {
}
@Override
public int getTypeId() {
return DataSerializationFactoryImpl.cli_QueryBuilder;
}
@Override
public QueryBuilder read(ObjectDataInput in) throws IOException {
QueryBuilder result = new QueryBuilder();
int size = in.readInt();
for (int i=0; i < size; i++) {
ExpressionContainer ec = in.readObject();
result.addContainer(ec);
}
return result;
}
@Override
public void write(ObjectDataOutput out, QueryBuilder query) throws IOException {
Collection<ExpressionContainer> containers = query.getContainers();
out.writeInt(containers.size());
for (ExpressionContainer ec: containers) {
out.writeObject(ec);
}
}
}