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

de.bund.bva.isyfact.common.web.validation.ValidationModel Maven / Gradle / Ivy

Go to download

Die IsyFact-Standards bilden das architektonische, technologische und methodische Fundament der IsyFact. Sie umfassen allgemeingültige und wiederverwendbare Konzepte und Komponenten, die für die Entwicklung beliebiger Fachanwendungen relevant sind.

There is a newer version: 6.2.0
Show newest version
/*
 * See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 * The Federal Office of Administration (Bundesverwaltungsamt, BVA)
 * licenses this file to you under the Apache License, Version 2.0 (the
 * License). You may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package de.bund.bva.isyfact.common.web.validation;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;

import com.google.common.base.Joiner;
import com.google.common.base.Strings;

/**
 * Das Validation-Model hält die Validerungsnachrichten für eine Maske.
 *
 * @author Capgemini, Andreas Hörning.
 * @version $Id: ValidationModel.java 124952 2014-11-12 13:31:30Z sdm_ahoerning $
 */
public class ValidationModel implements Serializable {

    /**
     * Die Serial-Version UID.
     */
    private static final long serialVersionUID = 1L;

    /**
     * Enthält die Validierungsfehler für die aktuelle Maske.
     */
    private List validationMessages = new ArrayList();

    /**
     * Enthält die Überschrift der Validierungsfehler-Nachrichten.
     */
    private FacesMessage globalValidationFacesMessage;

    /**
     * Enthält die Validierungsfehler, welche als Faces Messages dargestellt werden können.
     */
    private List validationFacesMessages = new ArrayList();

    public List getValidationMessages() {
        return this.validationMessages;
    }

    public void setValidationMessages(List validationMessages) {
        this.validationMessages = validationMessages;
    }

    public List getValidationFacesMessages() {
        return this.validationFacesMessages;
    }

    public void setValidationFacesMessages(List validationFacesMessages) {
        this.validationFacesMessages = validationFacesMessages;
    }

    public FacesMessage getGlobalValidationFacesMessage() {
        return this.globalValidationFacesMessage;
    }

    public void setGlobalValidationFacesMessage(FacesMessage globalValidationFacesMessage) {
        this.globalValidationFacesMessage = globalValidationFacesMessage;
    }

    /**
     * Liest die aktuellen Validierungsnachrichten zu einer gegebenen Referenz.
     * @param reference
     *            Die Referenz.
     * @return Die zugehörigen Validierungsnachrichten.
     */
    public List getValidationMessagesForReference(String reference) {
        List filteredValidationMessages = new ArrayList();

        if (this.validationMessages == null) {
            return filteredValidationMessages;
        }

        for (ValidationMessage validationMessage : this.validationMessages) {

            if (Strings.isNullOrEmpty(validationMessage.getReference())) {
                continue;
            }

            if (validationMessage.getReference().equals(reference)) {
                filteredValidationMessages.add(validationMessage);
            }
        }

        return filteredValidationMessages;
    }

    /**
     * Liest die aktuellen Validierungsnachrichten ohne eine Referenz aus.
     *
     * @return Die Validierungsnachrichten ohne Referenz.
     */
    public List getValidationMessagesWithoutReference() {
        List filteredValidationFacesMessages = new ArrayList();

        if (this.validationMessages == null) {
            return filteredValidationFacesMessages;
        }

        for (FacesMessage validationFacesMessage : this.validationFacesMessages) {

            if (Strings.isNullOrEmpty(validationFacesMessage.getSummary())) {
                filteredValidationFacesMessages.add(validationFacesMessage);
            }
        }

        return filteredValidationFacesMessages;
    }

    /**
     * Gibt eine zusammengefügte Validierungsnachricht als String aus allen vorhanden Validierungsnachrichten
     * für die angegebene Referenz zurück.
     * @param reference
     *            Die Referenz.
     * @return Die Validierungsnachricht.
     */
    public String getCombinedValidationMessageForReference(String reference) {

        List messages = new ArrayList();

        for (ValidationMessage validationMessage : getValidationMessagesForReference(reference)) {
            String message = validationMessage.getMessage() + " (" + validationMessage.getCode() + ")";
            if (validationMessage.isShowReadableReferenceValidationMessageForReference()) {
                message = validationMessage.getReadableReference() + " " + message;
            }

            messages.add(message);
        }

        return Joiner.on(", ").join(messages);

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy