Coverage Report - org.apache.turbine.modules.actions.VelocityAction
 
Classes in this File Line Coverage Branch Coverage Complexity
VelocityAction
75%
21/28
100%
4/4
1,545
 
 1  
 package org.apache.turbine.modules.actions;
 2  
 
 3  
 /*
 4  
  * Licensed to the Apache Software Foundation (ASF) under one
 5  
  * or more contributor license agreements.  See the NOTICE file
 6  
  * distributed with this work for additional information
 7  
  * regarding copyright ownership.  The ASF licenses this file
 8  
  * to you under the Apache License, Version 2.0 (the
 9  
  * "License"); you may not use this file except in compliance
 10  
  * with the License.  You may obtain a copy of the License at
 11  
  *
 12  
  *   http://www.apache.org/licenses/LICENSE-2.0
 13  
  *
 14  
  * Unless required by applicable law or agreed to in writing,
 15  
  * software distributed under the License is distributed on an
 16  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17  
  * KIND, either express or implied.  See the License for the
 18  
  * specific language governing permissions and limitations
 19  
  * under the License.
 20  
  */
 21  
 
 22  
 import org.apache.turbine.modules.screens.TemplateScreen;
 23  
 import org.apache.turbine.pipeline.PipelineData;
 24  
 import org.apache.turbine.services.velocity.TurbineVelocity;
 25  
 import org.apache.turbine.util.RunData;
 26  
 import org.apache.turbine.util.velocity.VelocityActionEvent;
 27  
 import org.apache.velocity.context.Context;
 28  
 
 29  
 /**
 30  
  * This class provides a convenience methods for Velocity Actions to use. Since
 31  
  * this class is abstract, it should only be extended and not used directly.
 32  
  * 
 33  
  * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
 34  
  * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
 35  
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
 36  
  * @version $Id: VelocityAction.java 1066529 2011-02-02 17:01:46Z ludwig $
 37  
  */
 38  22
 public abstract class VelocityAction extends VelocityActionEvent
 39  
 {
 40  
     /**
 41  
      * You SHOULD NOT override this method and implement it in your action.
 42  
      * 
 43  
      * @deprecated Use PipelineData version instead.
 44  
      * @param data Turbine information.
 45  
      * @throws Exception a generic exception.
 46  
      */
 47  
     @Override
 48  
     @Deprecated
 49  
     public void doPerform(RunData data) throws Exception
 50  
     {
 51  6
         doPerform(data, getContext(data));
 52  2
     }
 53  
 
 54  
     /**
 55  
      * You SHOULD NOT override this method and implement it in your action.
 56  
      * 
 57  
      * @param data Turbine information.
 58  
      * @throws Exception a generic exception.
 59  
      */
 60  
     @Override
 61  
     public void doPerform(PipelineData pipelineData) throws Exception
 62  
     {
 63  4
         doPerform(pipelineData, getContext(pipelineData));
 64  4
     }
 65  
 
 66  
     /**
 67  
      * Initialize the module.
 68  
      * 
 69  
      * @throws Exception a generic exception.
 70  
      */
 71  
     @Override
 72  
     public void initialize() throws Exception
 73  
     {
 74  22
         initialized = true;
 75  22
     }
 76  
 
 77  
     /**
 78  
      * You SHOULD override this method and implement it in your action.
 79  
      * 
 80  
      * @deprecated Use PipelineData version instead.
 81  
      * @param data Turbine information.
 82  
      * @param context Context for web pages.
 83  
      * @throws Exception a generic exception.
 84  
      */
 85  
     @Deprecated
 86  
     public abstract void doPerform(RunData data, Context context)
 87  
             throws Exception;
 88  
 
 89  
     /**
 90  
      * You SHOULD override this method and implement it in your action.
 91  
      * 
 92  
      * This should become abstract when the RunData version is removed. For
 93  
      * compatibility reasons this method will default to using the RunData
 94  
      * method unles it is overidden, which it should be.
 95  
      * 
 96  
      * @param data Turbine information.
 97  
      * @param context Context for web pages.
 98  
      * @throws Exception a generic exception.
 99  
      */
 100  
     public void doPerform(PipelineData pipelineData, Context context)
 101  
             throws Exception
 102  
     {
 103  0
         RunData data = getRunData(pipelineData);
 104  0
         doPerform(data, context);
 105  0
     }
 106  
 
 107  
     /**
 108  
      * Sets up the context and then calls super.perform(); thus, subclasses
 109  
      * don't have to worry about getting a context themselves! If a subclass
 110  
      * throws an exception then depending on whether
 111  
      * action.event.bubbleexception is true, then it bubbles it farther up, or
 112  
      * traps it there.
 113  
      * 
 114  
      * @deprecated Use PipelineData version instead.
 115  
      * @param data Turbine information.
 116  
      * @throws Exception a generic exception.
 117  
      */
 118  
     @Deprecated
 119  
     @Override
 120  
     protected void perform(RunData data) throws Exception
 121  
     {
 122  
         try
 123  
         {
 124  10
             super.perform(data);
 125  8
         } catch (Exception e)
 126  
         {
 127  8
             if (bubbleUpException)
 128  
             {
 129  4
                 throw e;
 130  
             }
 131  
 
 132  2
         }
 133  6
     }
 134  
 
 135  
     /**
 136  
      * Sets up the context and then calls super.perform(); thus, subclasses
 137  
      * don't have to worry about getting a context themselves! If a subclass
 138  
      * throws an exception then depending on whether
 139  
      * action.event.bubbleexception is true, then it bubbles it farther up, or
 140  
      * traps it there.
 141  
      * 
 142  
      * @param data Turbine information.
 143  
      * @throws Exception a generic exception.
 144  
      */
 145  
     @Override
 146  
     protected void perform(PipelineData pipelineData) throws Exception
 147  
     {
 148  
         try
 149  
         {
 150  12
             super.perform(pipelineData);
 151  8
         } catch (Exception e)
 152  
         {
 153  8
             if (bubbleUpException)
 154  
             {
 155  4
                 throw e;
 156  
             }
 157  
 
 158  4
         }
 159  8
     }
 160  
 
 161  
     /**
 162  
      * This method is used when you want to short circuit an Action and change
 163  
      * the template that will be executed next.
 164  
      * 
 165  
      * @deprecated Use PipelineData version instead.
 166  
      * @param data Turbine information.
 167  
      * @param template The template that will be executed next.
 168  
      */
 169  
     @Deprecated
 170  
     public void setTemplate(RunData data, String template)
 171  
     {
 172  0
         TemplateScreen.setTemplate(data, template);
 173  0
     }
 174  
 
 175  
     /**
 176  
      * This method is used when you want to short circuit an Action and change
 177  
      * the template that will be executed next.
 178  
      * 
 179  
      * @param data Turbine information.
 180  
      * @param template The template that will be executed next.
 181  
      */
 182  
     public void setTemplate(PipelineData pipelineData, String template)
 183  
     {
 184  0
         TemplateScreen.setTemplate(pipelineData, template);
 185  0
     }
 186  
 
 187  
     /**
 188  
      * Return the Context needed by Velocity.
 189  
      * 
 190  
      * @deprecated Use PipelineData version instead.
 191  
      * @param data Turbine information.
 192  
      * @return Context, a context for web pages.
 193  
      */
 194  
     @Deprecated
 195  
     protected Context getContext(RunData data)
 196  
     {
 197  6
         return TurbineVelocity.getContext(data);
 198  
     }
 199  
 
 200  
     /**
 201  
      * Return the Context needed by Velocity.
 202  
      * 
 203  
      * @param data Turbine information.
 204  
      * @return Context, a context for web pages.
 205  
      */
 206  
     protected Context getContext(PipelineData pipelineData)
 207  
     {
 208  4
         return TurbineVelocity.getContext(pipelineData);
 209  
     }
 210  
 
 211  
 }