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

ru.taskurotta.service.hz.serialization.TaskConfigContainerStreamSerializer 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.TaskConfigContainer;

import java.io.IOException;

import static ru.taskurotta.service.hz.serialization.SerializationTools.readString;
import static ru.taskurotta.service.hz.serialization.SerializationTools.writeString;

/**
 * User: greg
 */
public class TaskConfigContainerStreamSerializer implements StreamSerializer {

    private RetryPolicyConfigContainerSerializer retryPolicyConfigContainerSerializer = new RetryPolicyConfigContainerSerializer();

    @Override
    public void write(ObjectDataOutput out, TaskConfigContainer object) throws IOException {
        writeString(out, object.getCustomId());
        out.writeLong(object.getStartTime());
        writeString(out, object.getTaskList());
        if (object.getRetryPolicyConfigContainer() != null) {
            out.writeBoolean(true);
            retryPolicyConfigContainerSerializer.write(out, object.getRetryPolicyConfigContainer());
        } else {
            out.writeBoolean(false);
        }
    }

    @Override
    public TaskConfigContainer read(ObjectDataInput in) throws IOException {
        TaskConfigContainer container = new TaskConfigContainer();
        container.setCustomId(readString(in));
        container.setStartTime(in.readLong());
        container.setTaskList(readString(in));
        boolean retryPolicyExist = in.readBoolean();
        if (retryPolicyExist) {
            container.setRetryPolicyConfigContainer(retryPolicyConfigContainerSerializer.read(in));
        }
        return container;
    }

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

    @Override
    public void destroy() {

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy