    001/*
    002    Licensed to the Apache Software Foundation (ASF) under one
    003    or more contributor license agreements.  See the NOTICE file
    004    distributed with this work for additional information
    005    regarding copyright ownership.  The ASF licenses this file
    006    to you under the Apache License, Version 2.0 (the
    007    "License"); you may not use this file except in compliance
    008    with the License.  You may obtain a copy of the License at
    009
    010       http://www.apache.org/licenses/LICENSE-2.0
    011
    012    Unless required by applicable law or agreed to in writing,
    013    software distributed under the License is distributed on an
    014    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    015    KIND, either express or implied.  See the License for the
    016    specific language governing permissions and limitations
    017    under the License.
    018 */
    019package org.apache.wiki.forms;
    020
    021import java.io.Serializable;
    022import java.util.HashMap;
    023import java.util.Map;
    024
    025/**
    026 * Container for carrying HTTP FORM information between Plugin invocations in the Session.
    027 */
    028public class FormInfo implements Serializable {
    029
    030    private static final long serialVersionUID = 0L;
    031
    032    /**
    033     * State: Form is executed.
    034     */
    035    public static final int EXECUTED = 1;
    036
    037    /**
    038     * State: Form is OK.
    039     */
    040    public static final int OK = 0;
    041
    042    /**
    043     * State: There was an error.
    044     */
    045    public static final int ERROR = -1;
    046
    047    private int m_status;
    048    private boolean m_hide;
    049    private String m_action;
    050    private String m_name;
    051    private String m_handler;
    052    private String m_result;
    053    private String m_error;
    054    private Map<String, String> m_submission;
    055
    056    /**
    057     * Creates a new FormInfo with status == OK.
    058     */
    059    public FormInfo() {
    060        m_status = OK;
    061    }
    062
    063    /**
    064     * Set the status of the Form processing.
    065     *
    066     * @param val EXECUTED, OK or ERROR.
    067     */
    068    public void setStatus( final int val) {
    069        m_status = val;
    070    }
    071
    072    /**
    073     * Return the status.
    074     *
    075     * @return The status.
    076     */
    077    public int getStatus() {
    078        return m_status;
    079    }
    080
    081    /**
    082     * Set the hide parameter.
    083     *
    084     * @param val True or false.
    085     */
    086    public void setHide( final boolean val) {
    087        m_hide = val;
    088    }
    089
    090    /**
    091     * Returns true, if the form is supposed to be hidden.
    092     *
    093     * @return True or false.
    094     */
    095    public boolean hide() {
    096        return m_hide;
    097    }
    098
    099    /**
    100     * Set the value of the action parameter.
    101     *
    102     * @param val A value parameter.
    103     */
    104    public void setAction( final String val) {
    105        m_action = val;
    106    }
    107
    108    /**
    109     * Get the action set in {@link #setAction(String)}.
    110     *
    111     * @return An Action.
    112     */
    113    public String getAction() {
    114        return m_action;
    115    }
    116
    117    /**
    118     * Sets the name of the form.
    119     *
    120     * @param val The name of the form.
    121     */
    122    public void setName( final String val) {
    123        m_name = val;
    124    }
    125
    126    /**
    127     * Return the name of the form.
    128     *
    129     * @return The name of the form.
    130     */
    131    public String getName() {
    132        return m_name;
    133    }
    134
    135    /**
    136     * Set the name of the handler class.
    137     *
    138     * @param val The name of the class.
    139     */
    140    public void setHandler( final String val) {
    141        m_handler = val;
    142    }
    143
    144    /**
    145     * Return the name of the handler class.
    146     *
    147     * @return The name of the class.
    148     */
    149    public String getHandler() {
    150        return m_handler;
    151    }
    152
    153    /**
    154     * Set the result.
    155     *
    156     * @param val The result.
    157     */
    158    public void setResult( final String val) {
    159        m_result = val;
    160    }
    161
    162    /**
    163     * Return the result.
    164     *
    165     * @return The result.
    166     */
    167    public String getResult() {
    168        return m_result;
    169    }
    170
    171    /**
    172     * Set an error string.
    173     *
    174     * @param val An error string.
    175     */
    176    public void setError( final String val) {
    177        m_error = val;
    178    }
    179
    180    /**
    181     * Return the error.
    182     *
    183     * @return The error.
    184     */
    185    public String getError() {
    186        return m_error;
    187    }
    188
    189    /**
    190     * Copies the given values into the handler parameter map using Map.putAll().
    191     *
    192     * @param val parameter name-value pairs for a Form handler WikiPlugin
    193     */
    194    public void setSubmission( final Map<String, String> val) {
    195        m_submission = new HashMap<>();
    196        m_submission.putAll(val);
    197    }
    198
    199    /**
    200     * Adds the given values into the handler parameter map.
    201     *
    202     * @param val parameter name-value pairs for a Form handler WikiPlugin
    203     */
    204    public void addSubmission( final Map<String, String> val) {
    205        if (m_submission == null) {
    206            m_submission = new HashMap<>();
    207        }
    208        m_submission.putAll(val);
    209    }
    210
    211    /**
    212     * Returns parameter name-value pairs for a Form handler WikiPlugin.
    213     * The names are those of Form input fields, and the values whatever
    214     * the user selected in the form. The FormSet plugin can also be used
    215     * to provide initial values.
    216     *
    217     * @return Handler parameter name-value pairs.
    218     */
    219    public Map<String, String> getSubmission() {
    220        return m_submission;
    221    }
    222}