View Javadoc

1   /*
2    * Copyright 2001,2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.apache.commons.scaffold.util;
18  
19  
20  import java.util.Locale;
21  
22  
23  /**
24   * Simple helper bean that can be used to encapsulate a method
25   * representing a business process.
26   * <p>
27   * The business logic should be implemented in one of the supplied
28   * execute methods, or by another method called by one of these.
29   * A concrete subclass may return a default scope and attribute
30   * name to use when storing the bean (if applicable).
31   * <p>
32   * The preferred approach is to implement the <code>Object
33   * execute(Object)</code> signature, and use execute() to pass
34   * null, some other default value. If a default value is not
35   * possible, it is recommended that <code>execute() throw an
36   * or throw a UnsupportedOperationException.
37   * <p>
38   * Known implementations: BusinessBeanBase.
39   * @author Ted Husted
40   * @version $Revision: 155464 $ $Date: 2005-02-26 13:26:54 +0000 (Sat, 26 Feb 2005) $
41   */
42  public interface ProcessBean {
43  
44  // --------------------------------------------------------- Properties
45  
46      /**
47       * The session attribute key for our user profile bean ["userProfile"].
48       */
49      public static String USER_PROFILE_KEY = "userProfile";
50  
51  
52      /**
53       * Return the locale for this bean instance.
54       *
55       * @return the locale
56       */
57      public Locale getLocale();
58  
59  
60      /**
61       * Set the locale for this bean instance.
62       *
63       * @param locale The new locale
64       */
65      public void setLocale(Locale locale);
66  
67  
68      /**
69       * Return the network address of the client for this bean instance.
70       * <p>
71       * @return the network address.
72       */
73      public Integer getRemoteNode();
74  
75  
76      /**
77       * Set the network address of the client for this bean instance.
78       * @param remoteNode The new remoteNode.
79       */
80      public void setRemoteNode(Integer remoteNode);
81  
82  
83      /**
84       * The remote server object for this bean instance, if any.
85       * <p>
86       * This is often an application-scope object that can be used
87       * to process a JDBC query or equivalent.
88       * By default, the <code>ProcessAction</code> will set this to any
89       * application scope object found under the key
90       * <code>BaseAction.REMOTE_SERVER</code> or to null.
91       *
92       * @return the remote server
93       */
94      public Object getRemoteServer();
95  
96  
97      /**
98       * Set the remote server
99       *
100      * @param server The new server
101      */
102     public void setRemoteServer(Object server);
103 
104 
105     /**
106      * Return the parameter.
107      */
108     public String getParameter();
109 
110 
111     /**
112      * Set the parameter.
113      * @param parameter The new parameter
114      */
115     public void setParameter(String parameter);
116     
117 
118 // ------------------------------------------------------- Public Methods
119 
120 
121     /**
122      * Perform business logic for this bean, often by passing default
123      * values to the <code>Object execute(Object)</code> signature.
124      * If there is no default, it is recommended that a subclass throw
125      * an UnsupportedOperationException instead.
126      *
127      * @exception Throws Exception on any error. A subclass of
128      * ChainedException is recommended.
129      */
130     public Object execute() throws Exception;
131 
132 
133     /**
134      * Perform business logic for this, by retrieving any settings from
135      * the parameters object and returning a result object.
136      *
137      * @exception Throws Exception on any error. A subclass of
138      * <code>ChainedException</code> is recommended.
139      * @param parameters The map or other object to use with this operation
140      */
141     public Object execute(Object parameters) throws Exception;
142 
143 } // end ProcessBean