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