Author: rich
Date: Wed Mar 16 17:34:35 2005
New Revision: 157849
URL: http://svn.apache.org/viewcvs?view=rev&rev=157849
Log:
Missed this moved file in my last checkin.
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/ActionInterceptors.java
(with props)
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/ActionInterceptors.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/ActionInterceptors.java?view=auto&rev=157849
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/ActionInterceptors.java
(added)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/ActionInterceptors.java
Wed Mar 16 17:34:35 2005
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.interceptor.action.internal;
+
+import org.apache.beehive.netui.pageflow.interceptor.InterceptorChain;
+import org.apache.beehive.netui.pageflow.interceptor.InterceptorContext;
+import org.apache.beehive.netui.pageflow.interceptor.Interceptor;
+import org.apache.beehive.netui.pageflow.interceptor.InterceptorException;
+import org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor;
+import
org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptorContext;
+import org.apache.struts.action.ActionForward;
+
+import javax.servlet.ServletException;
+import java.util.List;
+import java.io.IOException;
+
+public class ActionInterceptors
+{
+ private static final class WrapActionInterceptorChain
+ extends InterceptorChain
+ {
+ private ActionExecutor _actionExecutor;
+
+ public WrapActionInterceptorChain( InterceptorContext context, List<
Interceptor > interceptors,
+ ActionExecutor actionExecutor )
+ {
+ super( context, interceptors );
+ _actionExecutor = actionExecutor;
+ }
+
+ protected Object invoke( Interceptor interceptor )
+ throws InterceptorException
+ {
+ return ( ( ActionInterceptor ) interceptor ).wrapAction( (
ActionInterceptorContext ) getContext(), this );
+ }
+
+ public Object continueChain()
+ throws InterceptorException
+ {
+ if ( ! isEmpty() )
+ {
+ return invoke( removeFirst() );
+ }
+ else
+ {
+ try
+ {
+ return _actionExecutor.execute();
+ }
+ catch ( ServletException e )
+ {
+ throw new InterceptorException( e );
+ }
+ catch ( IOException e )
+ {
+ throw new InterceptorException( e );
+ }
+ }
+ }
+ }
+
+ public static ActionForward wrapAction( ActionInterceptorContext context,
List< Interceptor > interceptors,
+ ActionExecutor actionExecutor )
+ throws InterceptorException, IOException, ServletException
+ {
+ try
+ {
+ if ( interceptors != null )
+ {
+ WrapActionInterceptorChain chain = new
WrapActionInterceptorChain( context, interceptors, actionExecutor );
+ return ( ActionForward ) chain.continueChain();
+ }
+ else
+ {
+ return actionExecutor.execute();
+ }
+ }
+ catch ( InterceptorException e )
+ {
+ Throwable cause = e.getCause();
+
+ if ( cause instanceof ServletException )
+ {
+ throw ( ServletException ) cause;
+ }
+ else if ( cause instanceof IOException )
+ {
+ throw ( IOException ) cause;
+ }
+
+ throw e;
+ }
+ }
+
+ public interface ActionExecutor
+ {
+ public ActionForward execute() throws IOException, ServletException,
InterceptorException;
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/internal/ActionInterceptors.java
------------------------------------------------------------------------------
svn:eol-style = native