001    // Copyright (c) 2001 Hursh Jain (http://www.mollypages.org) 
002    // The Molly framework is freely distributable under the terms of an
003    // MIT-style license. For details, see the molly pages web site at:
004    // http://www.mollypages.org/. Use, modify, have fun !
005    
006    package fc.web.servlet;
007    
008    import java.io.*;
009    import java.util.logging.*;
010    import java.util.*;
011    import javax.servlet.*;
012    import javax.servlet.http.*;
013    
014    import fc.io.*;
015    import fc.web.*;
016    import fc.util.*;
017    
018    /** 
019    Represents an action available to a servlet. 
020    
021    @author hursh jain
022    **/
023    public abstract class Action
024    {
025    protected final String    name;
026    
027    /**
028    Constructs a new Action and registers it with the specified
029    {@link ActionMgr}
030    
031    @param  name  the name of this action. Action names should be 
032            unique within a given {@link ActionMgr}. This is
033            the value of the <tt>act</tt> parameter submitted 
034            by the web client and is used to dispatch to this
035            action.
036    
037    **/
038    protected Action(String name) 
039      {
040      Argcheck.notnull(name, "name param was null");
041      this.name = name;
042      }
043    
044    /** 
045    Subclasses should implement this method to carry out a particular
046    action
047    **/
048    abstract 
049    public void handle(HttpServletRequest request, HttpServletResponse res) 
050    throws Exception; 
051      
052    /**  
053    Returns the name of this action.
054    **/
055    public String getName() {
056      return name;
057      }
058    
059    public String toString() {
060      return getClass().getName() + "; action=" + name;
061      }
062    
063    }          //~class Action