package com.bagri.client.hazelcast.serialize.system;
import java.io.IOException;
import java.util.Date;
import com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl;
import com.bagri.core.system.Function;
import com.bagri.core.system.Library;
import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;
import com.hazelcast.nio.serialization.StreamSerializer;
public class LibrarySerializer extends EntitySerializer implements StreamSerializer<Library> {
@Override
public int getTypeId() {
return DataSerializationFactoryImpl.cli_XDMLibrary;
}
@Override
public Library read(ObjectDataInput in) throws IOException {
Object[] entity = super.readEntity(in);
Library xLibrary = new Library(
(int) entity[0],
(Date) entity[1],
(String) entity[2],
in.readUTF(),
in.readUTF(),
in.readUTF(),
in.readBoolean());
int cnt = in.readInt();
for (int i=0; i < cnt; i++) {
Function xf = in.readObject();
xLibrary.getFunctions().add(xf);
}
return xLibrary;
}
@Override
public void write(ObjectDataOutput out, Library xLibrary) throws IOException {
super.writeEntity(out, xLibrary);
out.writeUTF(xLibrary.getName());
out.writeUTF(xLibrary.getFileName());
out.writeUTF(xLibrary.getDescription());
out.writeBoolean(xLibrary.isEnabled());
out.writeInt(xLibrary.getFunctions().size());
for (Function xf: xLibrary.getFunctions()) {
out.writeObject(xf);
}
}
}