OperationAttributeSimulateManagerImpl.java

package com.mycim.server.ctx.exec.manager.impl;

import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.server.base.manager.NamedObjectManager;
import com.mycim.server.ctx.exec.manager.OperationAttributeSimulateManager;
import com.mycim.server.ctx.manager.ContextValueManager;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.context.dto.QueryContextValueDTO;
import com.mycim.valueobject.prp.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.lang.Override;

@Service
public class OperationAttributeSimulateManagerImpl implements OperationAttributeSimulateManager {

    @Autowired
    NamedObjectManager namedObjectManager;

    @Autowired
    ContextValueManager contextValueManager;

    @Override
    public OperationDESCContextValue simulateOperationDESCContextValue(QueryContextValueDTO queryContextValue) {
        OperationDESCContextValue operationDescContextValue = new OperationDESCContextValue();

        operationDescContextValue.setContextRrn(namedObjectManager
                                                        .getNamedObjectRrn(operationDescContextValue.getContextId(),
                                                                           LocalContext.getFacilityRrn(),
                                                                           ObjectList.CONTEXT_KEY));

        operationDescContextValue.setProductRrn(queryContextValue.getProductRrn());
        operationDescContextValue.setProcessRrn(queryContextValue.getProcessRrn());
        operationDescContextValue.setProcessVersion(queryContextValue.getProcessVersion());
        operationDescContextValue.setRouteRrn(queryContextValue.getRouteRrn());
        operationDescContextValue.setOperationRrn(queryContextValue.getOperationRrn());

        ContextValue contextValue = contextValueManager.simulateContextValue(operationDescContextValue);
        if (contextValue != null) {
            operationDescContextValue.copy(contextValue);
        }
        return operationDescContextValue;
    }

    @Override
    public ProcessLocationContextValue simulateProcessLocationContextValue(QueryContextValueDTO queryContextValue) {
        ProcessLocationContextValue processLocationContextValue = new ProcessLocationContextValue();

        processLocationContextValue.setContextRrn(namedObjectManager
                                                          .getNamedObjectRrn(processLocationContextValue.getContextId(),
                                                                             LocalContext.getFacilityRrn(),
                                                                             ObjectList.CONTEXT_KEY));

        processLocationContextValue.setProductRrn(queryContextValue.getProductRrn());
        processLocationContextValue.setProcessRrn(queryContextValue.getProcessRrn());
        processLocationContextValue.setProcessVersion(queryContextValue.getProcessVersion());
        processLocationContextValue.setRouteRrn(queryContextValue.getRouteRrn());
        processLocationContextValue.setOperationRrn(queryContextValue.getOperationRrn());

        ContextValue contextValue = contextValueManager.simulateContextValue(processLocationContextValue);
        if (contextValue != null) {
            processLocationContextValue.copy(contextValue);
        }
        return processLocationContextValue;
    }

    @Override
    public StageContextValue simulateStageContextValue(QueryContextValueDTO queryContextValue) {
        StageContextValue stageContextValue = new StageContextValue();
        stageContextValue.setContextRrn(namedObjectManager.getNamedObjectRrn(stageContextValue.getContextId(),
                                                                             LocalContext.getFacilityRrn(),
                                                                             ObjectList.CONTEXT_KEY));

        stageContextValue.setProductRrn(queryContextValue.getProductRrn());
        stageContextValue.setProcessRrn(queryContextValue.getProcessRrn());
        stageContextValue.setProcessVersion(queryContextValue.getProcessVersion());
        stageContextValue.setRouteRrn(queryContextValue.getRouteRrn());
        stageContextValue.setOperationRrn(queryContextValue.getOperationRrn());

        ContextValue contextValue = contextValueManager.simulateContextValue(stageContextValue);
        if (contextValue != null) {
            stageContextValue.copy(contextValue);
        }
        return stageContextValue;
    }

    @Override
    public ProcessOperationDescContextValue simulateProcessOperationDescContextValue(
            QueryContextValueDTO queryContextValue) {
        ProcessOperationDescContextValue operationDescContextValue = new ProcessOperationDescContextValue();
        operationDescContextValue.setContextRrn(namedObjectManager
                                                        .getNamedObjectRrn(operationDescContextValue.getContextId(),
                                                                           LocalContext.getFacilityRrn(),
                                                                           ObjectList.CONTEXT_KEY));

        operationDescContextValue.setProductRrn(queryContextValue.getProductRrn());
        operationDescContextValue.setProcessRrn(queryContextValue.getProcessRrn());
        operationDescContextValue.setProcessVersion(queryContextValue.getProcessVersion());
        operationDescContextValue.setRouteRrn(queryContextValue.getRouteRrn());
        operationDescContextValue.setOperationRrn(queryContextValue.getOperationRrn());

        ContextValue contextValue = contextValueManager.simulateContextValue(operationDescContextValue);
        if (contextValue != null) {
            operationDescContextValue.copy(contextValue);
        }
        return operationDescContextValue;
    }

    @Override
    public ResequenceContextValue simulateResequenceContextValue(QueryContextValueDTO queryContextValue) {
        ResequenceContextValue resequenceContextValue = new ResequenceContextValue();
        resequenceContextValue.setContextRrn(namedObjectManager.getNamedObjectRrn(resequenceContextValue.getContextId(),
                                                                                  LocalContext.getFacilityRrn(),
                                                                                  ObjectList.CONTEXT_KEY));

        resequenceContextValue.setProcessRrn(queryContextValue.getProcessRrn());
        resequenceContextValue.setProcessVersion(queryContextValue.getProcessVersion());
        resequenceContextValue.setRouteRrn(queryContextValue.getRouteRrn());
        resequenceContextValue.setOperationRrn(queryContextValue.getOperationRrn());

        ContextValue contextValue = contextValueManager.simulateContextValue(resequenceContextValue);
        if (contextValue != null) {
            resequenceContextValue.copy(contextValue);
        }
        return resequenceContextValue;
    }

}