001 /*
002 * Copyright 2001,2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.apache.commons.scaffold.util;
018
019 import java.util.List;
020
021 // ----------------------------------------------------------------------
022
023 /**
024 * Convenient wrapper for the result of a process.
025 * <p>
026 * The result property returns any object generated by the
027 * process that is to be returned to the presentation tier.
028 *
029 * The <b>messages</b> property is a list of any confirmation
030 * messages to be displayed by the presentation tier.
031 * These may be keys into a resource bundle, or literal text,
032 * depending on whether the application is localized.
033 *
034 * The <b>dispatchPath</b> property returns any special advice regarding
035 * the next step in the workflow. Null indicates the nominal "success"
036 * path should be followed.
037 *
038 * The <b>data</b> property is any actual data returned from storage.
039 * This may be a single record or a collection of records
040 * (see <code>isSingleForm()</code>).
041 *
042 * @author Ted Husted
043 * @author Synthis Corporation
044 * @version $Revision: 155464 $ $Date: 2005-02-26 13:26:54 +0000 (Sat, 26 Feb 2005) $
045 * @deprecated Use BizResponse instead
046 */
047 public interface ProcessResult {
048
049 /**
050 * Return the attribute name for the result object.
051 * <p>
052 * Typically, this will be set by the caller but is provided
053 * in case a special name must be used or a way is needed to
054 * distingish between result objects.
055 *
056 * @return the name
057 */
058 public String getName();
059
060
061 /**
062 * Set the attribute name for this result object.
063 *
064 * @param name The new name
065 */
066 public void setName(String name);
067
068
069 /**
070 * Return the scope under which to store this result object.
071 *
072 * @return the scope
073 */
074 public String getScope();
075
076
077 /**
078 * Set the scope under which to store this result object.
079 *
080 * @param scope The new scope
081 */
082 public void setScope(String scope);
083
084
085
086 /**
087 * Return the single-form state:
088 * list of 0 or more records=FALSE, exactly one record=TRUE.
089 *
090 * @return True if this is a single record
091 */
092 public boolean isSingleForm();
093
094
095 /**
096 * Set the single-form state:
097 * list of 0 or more records=FALSE, exactly one record=TRUE.
098 *
099 * @param Set to true for single form.
100 */
101 public void setSingleForm(boolean singleForm);
102
103
104 /**
105 * Return the exposed state.
106 *
107 * @return True if the result should be exposed
108 */
109 public boolean isExposed();
110
111
112 /**
113 * Indicates whether the result should be exposed
114 * to the rest of the application through a context.
115 *
116 * @param multiple The new exposed
117 */
118 public void setExposed(boolean exposed);
119
120
121 /**
122 * Return the data object.
123 *
124 * @return The data object
125 */
126 public Object getData();
127
128
129 /**
130 * Assign a new data object.
131 *
132 * @param data The new data object
133 */
134 public void setData(Object data);
135
136
137 /**
138 * Return whether data object has been set.
139 *
140 * @return True if this result contains a data object
141 */
142 public boolean isData();
143
144
145 /**
146 * Return whether the result of this ProcessResult is a collection of
147 * contains other ProcessResult objects to be handled individually.
148 * This allows processes to be combined on the business tier and
149 * returned to controller as a single operation.
150 *
151 * @return True if this ProcessResult contains other ProcessResults
152 * objects
153 */
154 public boolean isAggregate();
155
156
157 /**
158 * Assign a new container state.
159 *
160 * @param aggregate Set to true for aggregate result
161 */
162 public void setAggregate(boolean aggregate);
163
164
165 /**
166 * Return the messages list.
167 *
168 * @return The message list
169 */
170 public List getMessages();
171
172
173 /**
174 * Return whether there are any messages queued.
175 *
176 * @return True if there are messages queued.
177 */
178 public boolean isMessages();
179
180
181 /**
182 * Add a message to the list.
183 * Instantiate messages if it does not already exist.
184 *
185 * @return True if message added.
186 */
187 public boolean addMessage(Object message);
188
189
190 /**
191 * The dispatch property can be used to re-route control to an non-default location,
192 * either as a system path or via a logical name (e.g ActionForward).
193 *
194 * @see <code>setDispatchPath()</code>
195 *
196 * @return The dispatch advice
197 */
198 public String getDispatch();
199
200
201 /**
202 * Field to store dispatch property.
203 */
204 public void setDispatch(String dispatch);
205
206
207 /**
208 * Return whether dispatch advice has been set.
209 *
210 * @return True if dispatch advice has been set.
211 */
212 public boolean isDispatch();
213
214
215 /**
216 * Return whether dispatch advice is suppose to be a
217 * true path or a logical name (e.g. ActionForward)
218 *
219 * @return True if dispatch advice is an actual path
220 */
221 public boolean isDispatchPath();
222
223
224 /**
225 * Indicates whether dispatch advice (if any) is suppose to be a
226 * path or a logical name (e.g. ActionForward).
227 *
228 * @param dispatchPath The new dispatch advice
229 */
230 public void setDispatchPath(boolean dispatchPath);
231
232 }