    001    package 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
    024    import 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 1073174 2011-02-21 22:18:45Z tv $
    033     */
    034    public 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            StringBuffer sb = new StringBuffer("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    }