Clover coverage report - angkor - 0.4
Coverage timestamp: ti okt 15 2002 22:32:48 CEST
file stats: LOC: 68   Methods: 4
NCLOC: 24   Classes: 1
Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover.
 
 Source file Conditionals Statements Methods TOTAL
Controller.java 100% 66,7% 50% 66,7%
 1   
 /*
 2   
  * Angkor Web Framework
 3   
  *
 4   
  * Distributable under LGPL license.
 5   
  * See terms of license at gnu.org.
 6   
  */
 7   
 
 8   
 package com.tirsen.angkor;
 9   
 
 10   
 
 11   
 /**
 12   
  * Base class useful for implementing controllers.
 13   
  *
 14   
  * <!-- $Id: Controller.java,v 1.6 2002/10/13 13:37:26 tirsen Exp $ -->
 15   
  * <!-- $Author: tirsen $ -->
 16   
  *
 17   
  * TODO resolve error-handling
 18   
  * currently this is performed during render phase
 19   
  * setting up the models should be performed during parse phase
 20   
  * during parse phase we can send all errors to the application
 21   
  * which can decide upon passing the user to an error page
 22   
  * how to load the models during parse phase?
 23   
  * when navigating to a new page an event should be sent to that page
 24   
  * ie. when changing the target of a named component link events should
 25   
  * be sent (they should be queued up to the next parse phase), the controller
 26   
  * adds a listener for this event (which probably could be performed by the
 27   
  * base class Controller with an abstract template method createModels() throws Exception)
 28   
  * @author Jon Tirs&eacute;n (tirsen@users.sourceforge.net)
 29   
  * @version $Revision: 1.6 $
 30   
  */
 31   
 public abstract class Controller extends AbstractViewFactory
 32   
 {
 33   
     private Application application;
 34   
     private transient View view;
 35   
 
 36  5
     public Controller(Application application)
 37   
     {
 38  5
         this.application = application;
 39   
     }
 40   
 
 41  0
     public Application getApplication()
 42   
     {
 43  0
         return application;
 44   
     }
 45   
 
 46   
     /**
 47   
      * This method is called by the framework at any time and any number of times during
 48   
      * the render phase.
 49   
      * To decrease memory usage and optimize serialization the view is transient and
 50   
      * referred using a weak reference. This implies that the createView method can be
 51   
      * called at any time recreating the view. The createView method thus need to be able to
 52   
      * completely restore the view and it's link to actualy persistent conversational state such
 53   
      * as the models which should be kept in a non-transient field.
 54   
      */
 55  15
     public View getView()
 56   
     {
 57  5
         if (view == null) view = createView();
 58  15
         return view;
 59   
     }
 60   
 
 61  0
     public String getDisplayName()
 62   
     {
 63  0
         return "untitled";
 64   
     }
 65   
 
 66   
     public abstract View createView();
 67   
 }
 68