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}