com.webbfontaine.valuewebb.model.validators.tt.ContainersValidator.java Source code

Java tutorial

Introduction

Here is the source code for com.webbfontaine.valuewebb.model.validators.tt.ContainersValidator.java

Source

package com.webbfontaine.valuewebb.model.validators.tt;

import com.webbfontaine.valuewebb.model.Container;
import com.webbfontaine.valuewebb.model.TtGen;
import com.webbfontaine.valuewebb.model.constants.Constants;
import com.webbfontaine.valuewebb.validation.ErrorHandling;
import org.apache.commons.lang3.StringUtils;

import javax.faces.application.FacesMessage;
import java.util.List;

/**
 * Copyrights 2002-2011 Webb Fontaine
 * This software is the proprietary information of Webb Fontaine.
 * Its use is subject to License terms.
 * Developer: nigiyan
 * Date: 09/12/2011
 */

public class ContainersValidator implements Constants {

    private TtGen ttGen;
    private ErrorHandling errorHandling;

    public ContainersValidator(TtGen ttGen, ErrorHandling errorHandling) {
        this.ttGen = ttGen;
        this.errorHandling = errorHandling;
    }

    public void checkContainers(String requestedOperation) {

        List<Container> containers = ttGen.getTtTrans().getContainers();
        for (int i = 0; i < containers.size(); i++) {
            if (!StringUtils.isEmpty(containers.get(i).getNumber())) { // if empty let mandatory rules work
                boolean tmpError = false;
                for (int j = i + 1; j < containers.size(); j++) {
                    if (containers.get(i).getNumber().equals(containers.get(j).getNumber())) {
                        tmpError = true;
                        ErrorHandling.addFacesMessage("containers:" + i + ":number", "Container duplicated",
                                FacesMessage.SEVERITY_ERROR);
                    }
                }
                if (!tmpError) {
                    errorHandling.removeErrorByFieldIdAndErrorMessage("containers:" + i + ":number",
                            "Container duplicated");
                }
            }
        }

        if (ACCEPT.equals(requestedOperation) || COMPLETE_VC.equals(requestedOperation)) {
            Integer fclNumber = ttGen.getTtTrans().getFclNum() == null ? 0 : ttGen.getTtTrans().getFclNum();
            Integer lclNumber = ttGen.getTtTrans().getLclNum() == null ? 0 : ttGen.getTtTrans().getLclNum();
            if (fclNumber + lclNumber == ttGen.getTtTrans().getContainers().size()) {
                errorHandling.removeErrorByFieldIdAndErrorMessage("number", "Wrong number of containers");
            } else {
                ErrorHandling.addFacesMessage("number", "Wrong number of containers", FacesMessage.SEVERITY_ERROR);
            }
        }
    }

}