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

ru.taskurotta.service.hz.serialization.bson.TaskConfigContainerBSerializer Maven / Gradle / Ivy

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

import ru.taskurotta.mongodb.driver.BDataInput;
import ru.taskurotta.mongodb.driver.BDataOutput;
import ru.taskurotta.mongodb.driver.CString;
import ru.taskurotta.mongodb.driver.StreamBSerializer;
import ru.taskurotta.transport.model.RetryPolicyConfigContainer;
import ru.taskurotta.transport.model.TaskConfigContainer;

import static ru.taskurotta.service.hz.serialization.bson.BSerializerTools.readObject;
import static ru.taskurotta.service.hz.serialization.bson.BSerializerTools.writeObjectIfNotNull;

public class TaskConfigContainerBSerializer implements StreamBSerializer {

    private static final CString CUSTOM_ID = new CString("customId");
    private static final CString START_TIME = new CString("startTime");
    private static final CString TASK_LIST = new CString("taskList");
    private static final CString RETRY_POLICY = new CString("retryPolicy");

    RetryPolicyConfigContainerBSerializer retryPolicyConfigContainerBSerializer = new RetryPolicyConfigContainerBSerializer();


    @Override
    public Class getObjectClass() {
        return TaskConfigContainer.class;
    }

    @Override
    public void write(BDataOutput out, TaskConfigContainer object) {
        out.writeString(CUSTOM_ID, object.getCustomId());
        out.writeLong(START_TIME, object.getStartTime(), -1l);
        out.writeString(TASK_LIST, object.getTaskList());
        writeObjectIfNotNull(RETRY_POLICY, object.getRetryPolicyConfigContainer(),
                retryPolicyConfigContainerBSerializer, out);
    }

    @Override
    public TaskConfigContainer read(BDataInput in) {
        String customId = in.readString(CUSTOM_ID);
        long startTime = in.readLong(START_TIME, -1l);
        String taskList = in.readString(TASK_LIST);
        RetryPolicyConfigContainer retryPolicyConfigContainer = readObject(RETRY_POLICY,
                retryPolicyConfigContainerBSerializer, in);

        return new TaskConfigContainer(customId, startTime, taskList, retryPolicyConfigContainer);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy