ProcessAttributeDto.java

package com.mycim.valueobject.prp;


import java.util.HashMap;
import java.util.Map;

public class ProcessAttributeDto {

    private ProcessReworkDto processRework;

    private ProcessSpecItem processSpecItem;

    private Map<String, ProductSpecItem> productSpecItems;

    /**
     * @return the processRework
     */
    public ProcessReworkDto getProcessRework() {
        return processRework;
    }

    /**
     * @param processRework the processRework to set
     */
    public void setProcessRework(ProcessReworkDto processRework) {
        this.processRework = processRework;
    }

    /**
     * @return the processSpecItem
     */
    public ProcessSpecItem getProcessSpecItem() {
        if (processSpecItem == null) {
            setProcessSpecItem(new ProcessSpecItem());
        }
        return processSpecItem;
    }

    /**
     * @param processSpecItem the processSpecItem to set
     */
    public void setProcessSpecItem(ProcessSpecItem processSpecItem) {
        this.processSpecItem = processSpecItem;
    }

    /**
     * @return the productSpecItems
     */
    public Map<String, ProductSpecItem> getProductSpecItems() {
        if (productSpecItems == null) {
            setProductSpecItems(new HashMap<String, ProductSpecItem>());
        }
        return productSpecItems;
    }

    /**
     * @param productSpecItems the productSpecItems to set
     */
    public void setProductSpecItems(Map<String, ProductSpecItem> productSpecItems) {
        this.productSpecItems = productSpecItems;
    }

    /**
     * @param processRrn
     * @param processVersion
     * @param routeRrn
     * @param operationRrn
     * @return
     */
    public ProcessSpecItem getProcessSpecItem(Long processRrn, Integer processVersion, Long routeRrn,
                                              Long operationRrn) {
        ProcessSpecItem processSpecItem = this.getProcessSpecItem();
        if (processSpecItem == null) {
            processSpecItem = new ProcessSpecItem();

            processSpecItem.setProcessRrn(processRrn);
            processSpecItem.setProcessVersion(processVersion);
            processSpecItem.setRouteRrn(routeRrn);
            processSpecItem.setOperationRrn(operationRrn);

            this.setProcessSpecItem(processSpecItem);
        }
        return processSpecItem;
    }

    /**
     * @param processRrn
     * @param processVersion
     * @param routeRrn
     * @param operationRrn
     * @param productRrn
     * @param productVersion
     * @return
     */
    public ProductSpecItem getProductSpecItem(Long processRrn, Integer processVersion, Long routeRrn, Long operationRrn,
                                              Long productRrn, Integer productVersion) {
        String prodKey = ContextValueUtils
                .buildKeyByProduct(processRrn, processVersion, routeRrn, operationRrn, productRrn, productVersion);

        ProductSpecItem productSpecItem = this.getProductSpecItems().get(prodKey);

        if (productSpecItem == null) {
            productSpecItem = new ProductSpecItem();

            productSpecItem.setProductRrn(productRrn);
            productSpecItem.setProductVersion(productVersion);
            productSpecItem.setProcessRrn(processRrn);
            productSpecItem.setProcessVersion(processVersion);
            productSpecItem.setRouteRrn(routeRrn);
            productSpecItem.setOperationRrn(operationRrn);

            this.getProductSpecItems().put(prodKey, productSpecItem);
        }

        return productSpecItem;
    }

}