package com.bagri.client.hazelcast.serialize.query;
import java.io.IOException;
import java.util.List;
import com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl;
import com.bagri.core.query.Expression;
import com.bagri.core.query.ExpressionBuilder;
import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;
import com.hazelcast.nio.serialization.StreamSerializer;
public class ExpressionBuilderSerializer implements StreamSerializer<ExpressionBuilder> {
@Override
public void destroy() {
}
@Override
public int getTypeId() {
return DataSerializationFactoryImpl.cli_ExpressionBuilder;
}
@Override
public ExpressionBuilder read(ObjectDataInput in) throws IOException {
ExpressionBuilder eb = new ExpressionBuilder();
int size = in.readInt();
for (int i=0; i < size; i++) {
Expression ex = in.readObject();
eb.addExpression(ex);
}
return eb;
}
@Override
public void write(ObjectDataOutput out, ExpressionBuilder eb) throws IOException {
List<Expression> expressions = eb.getExpressions();
out.writeInt(expressions.size());
for (Expression ex: expressions) {
out.writeObject(ex);
}
}
}