package com.bagri.client.hazelcast.serialize.system; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.bagri.core.system.TriggerAction; import com.bagri.core.system.TriggerDefinition; import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; public abstract class TriggerDefinitionSerializer extends EntitySerializer { public Object[] readTrigger(ObjectDataInput in) throws IOException { Object[] entity = super.readEntity(in); Object[] trigger = new Object[8]; trigger[0] = entity[0]; trigger[1] = entity[1]; trigger[2] = entity[2]; trigger[3] = in.readUTF(); trigger[4] = in.readBoolean(); trigger[5] = in.readBoolean(); trigger[6] = in.readInt(); int size = in.readInt(); List<TriggerAction> actions = new ArrayList<>(size); for (int i=0; i < size; i++) { TriggerAction xAction = in.readObject(); actions.add(xAction); } trigger[7] = actions; return trigger; } public void writeTrigger(ObjectDataOutput out, TriggerDefinition xTrigger) throws IOException { super.writeEntity(out, xTrigger); out.writeUTF(xTrigger.getDocType()); out.writeBoolean(xTrigger.isSynchronous()); out.writeBoolean(xTrigger.isEnabled()); out.writeInt(xTrigger.getIndex()); out.writeInt(xTrigger.getActions().size()); for (TriggerAction xAction: xTrigger.getActions()) { out.writeObject(xAction); } } }