Umm.. Yuck. Inner classes are not a better answer than calling other
methods... No no no...

And I think it's fine for people to define their own workflow methods
and workflow interceptors, but I don't want to make it standard.

Jason

> -----Original Message-----
> From: Matt Ho [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, July 02, 2003 7:58 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [OS-webwork] WebWork2, here I come!
> 
> 
>  > Well, there are tonnes of use cases for this (you are 
> talking about  > commands right?)  >  > The most commonly 
> quoted one is a CRUD action. You create different  > methods 
> like doCreate(), doUpdate() and have the same fields (ie 
> name,  > email etc).
> 
> Ha!  I've definitely spent too much time with Struts :)
> 
> It strikes me that if you want to combine the CRUD into a 
> single class, 
> you could do it as follows.  It's not a short as a single 
> class, but I 
> think this is far easier to follow.
> 
> I can simply use ReservationAction.Create, 
> ReservationAgent.Read, etc in 
> my xwork file as appropriate and the functionality of the 
> class is a lot 
> more clear than it would be otherwise :)
> 
> public abstract class ReservationAction implements Action {
>      private ReservationAgent agent;
>      public ReservationAction(ReservationAgent agent) {
>          this.agent = agent;
>          // do other stuff
>      }
> 
>      // do other stuff here
> 
>      public static class Create extends ReservationAction {
>        public String execute() {
>           ...
>        }
>      }
> 
>      public static class Read extends ReservationAction {
>        public String execute() {
>           ...
>        }
>      }
> 
>      public static class Update extends ReservationAction {
>        public String execute() {
>           ...
>        }
>      }
> 
>      public static class Delete extends ReservationAction {
>        public String execute() {
>           ...
>        }
>      }
> }
> 
> The topic of workflow reminded me of struts discussions a 
> while back on 
> the same topic.  I don't think struts ever came up with a 
> good solution, 
> but they never had an interceptor stack :)
> 
> I'm thinking aloud again ...
> 
> It strikes me that doExecute, doValidation, and doDefault could be 
> utilized by an interceptor to do all sorts of interestings.
> 
> * a view read only page-> doExecute()
> * an input/execute pair of pages would be doDefault -> doValidation / 
> doExecute
> * an input/confirm/execute trio would be doDefault -> doValidation -> 
> doValidation / doExecute
> * a multipage form would be doDefault -> doValidate(label) -> 
> doValidate(anotherLabel) -> doValidate()/doExcute()
> 
> ActionSupport could provide default empty implementations for 
> doExecute(), doValidate(), and doDefault(). ActionSupport would use a 
> WorkflowStrategy to figure out how to traverse the various pages. 
> Alternately, you could create an interface that had these method 
> signatures and embed the strategy in an interceptor.
> 
> However, methinks that this workflow stuff and non-concrete 
> actions may 
> not mix well.
> 
> Thoughts?
> 
> M
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email sponsored by: Free pre-built ASP.NET sites 
> including Data Reports, E-commerce, Portals, and Forums are 
> available now. Download today and enter to win an XBOX or 
> Visual Studio .NET. 
> http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_06
1203_01/01
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to