All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.taskurotta.service.hz.serialization.DecisionStreamSerializer Maven / Gradle / Ivy

The newest version!
package ru.taskurotta.service.hz.serialization;

import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;
import com.hazelcast.nio.serialization.StreamSerializer;
import ru.taskurotta.transport.model.Decision;

import java.io.IOException;
import java.util.UUID;

/**
 */
public class DecisionStreamSerializer implements StreamSerializer {

    private DecisionContainerStreamSerializer decisionContainerStreamSerializer = new
            DecisionContainerStreamSerializer();

    @Override
    public void write(ObjectDataOutput out, Decision object) throws IOException {
        UUIDSerializer.write(out, object.getTaskId());
        UUIDSerializer.write(out, object.getProcessId());
        out.writeByte(object.getState());
        UUIDSerializer.write(out, object.getPass());
        out.writeLong(object.getRecoveryTime());

        decisionContainerStreamSerializer.write(out, object.getDecisionContainer());
    }

    @Override
    public Decision read(ObjectDataInput in) throws IOException {

        UUID taskId = UUIDSerializer.read(in);
        UUID processId = UUIDSerializer.read(in);
        int state = in.readByte();
        UUID pass = UUIDSerializer.read(in);
        long recoveryTime = in.readLong();

        return new Decision(taskId, processId, state, pass, recoveryTime, decisionContainerStreamSerializer.read(in));
    }

    @Override
    public int getTypeId() {
        return ObjectTypes.DECISION;
    }

    @Override
    public void destroy() {

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy