    001package org.apache.turbine.util;
    002
    003
    004/*
    005 * Licensed to the Apache Software Foundation (ASF) under one
    006 * or more contributor license agreements.  See the NOTICE file
    007 * distributed with this work for additional information
    008 * regarding copyright ownership.  The ASF licenses this file
    009 * to you under the Apache License, Version 2.0 (the
    010 * "License"); you may not use this file except in compliance
    011 * with the License.  You may obtain a copy of the License at
    012 *
    013 *   http://www.apache.org/licenses/LICENSE-2.0
    014 *
    015 * Unless required by applicable law or agreed to in writing,
    016 * software distributed under the License is distributed on an
    017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    018 * KIND, either express or implied.  See the License for the
    019 * specific language governing permissions and limitations
    020 * under the License.
    021 */
    022
    023
    024import java.util.Vector;
    025
    026/**
    027 * A message class for holding information about a message that
    028 * relates to a specific form and field.  Used together with
    029 * FormMessages class.
    030 *
    031 * @author <a href="mailto:neeme@one.lv">Neeme Praks</a>
    032 * @version $Id: FormMessage.java 1709648 2015-10-20 17:08:10Z tv $
    033 */
    034public class FormMessage
    035{
    036    private String message;
    037    private String formName;
    038    private final Vector<String> fieldNames;
    039
    040    /**
    041     * Constructor.
    042     */
    043    public FormMessage()
    044    {
    045        fieldNames = new Vector<String>();
    046    }
    047
    048    /**
    049     * Constructor.
    050     *
    051     * @param formName A String with the form name.
    052     */
    053    public FormMessage(String formName)
    054    {
    055        this();
    056        setFormName(formName);
    057    }
    058
    059    /**
    060     * Constructor.
    061     *
    062     * @param formName A String with the form name.
    063     * @param fieldName A String with the field name.
    064     */
    065    public FormMessage(String formName,
    066                       String fieldName)
    067    {
    068        this(formName);
    069        setFieldName(fieldName);
    070    }
    071
    072    /**
    073     * Constructor.
    074     *
    075     * @param formName A String with the form name.
    076     * @param fieldName A String with the field name.
    077     * @param message A String with the message.
    078     */
    079    public FormMessage(String formName,
    080                       String fieldName,
    081                       String message)
    082    {
    083        this(formName, fieldName);
    084        setMessage(message);
    085    }
    086
    087    /**
    088     * Return the message.
    089     *
    090     * @return A String with the message.
    091     */
    092    public String getMessage()
    093    {
    094        return message;
    095    }
    096
    097    /**
    098     * Return the form name.
    099     *
    100     * @return A String with the form name.
    101     */
    102    public String getFormName()
    103    {
    104        return formName;
    105    }
    106
    107    /**
    108     * Return the field names.
    109     *
    110     * @return A String[] with the field names.
    111     */
    112    public String[] getFieldNames()
    113    {
    114        String[] result = new String[fieldNames.size()];
    115        fieldNames.copyInto(result);
    116        return result;
    117    }
    118
    119    /**
    120     * Set the message.
    121     *
    122     * @param message A String with the message.
    123     */
    124    public void setMessage(String message)
    125    {
    126        this.message = message;
    127    }
    128
    129    /**
    130     * Set the form name.
    131     *
    132     * @param formName A String with the form name.
    133     */
    134    public void setFormName(String formName)
    135    {
    136        this.formName = formName;
    137    }
    138
    139    /**
    140     * Adds one field name.
    141     *
    142     * @param fieldName A String with the field name.
    143     */
    144    public void setFieldName(String fieldName)
    145    {
    146        fieldNames.addElement(fieldName);
    147    }
    148
    149    /**
    150     * Write out the contents of the message in a friendly manner.
    151     *
    152     */
    153    @Override
    154    public String toString()
    155    {
    156        StringBuilder sb = new StringBuilder("formName:" + getFormName() + ", fieldNames:");
    157        for (int i = 0; i< getFieldNames().length; i++){
    158            sb.append(getFieldNames()[i] + " ");
    159        }
    160        sb.append(", message:" + getMessage());
    161
    162        return sb.toString();
    163    }
    164}