You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by ni...@apache.org on 2004/06/09 02:25:34 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/config FormBeanConfig.java

niallp      2004/06/08 17:25:34

  Modified:    src/share/org/apache/struts/config FormBeanConfig.java
  Log:
  Changes for bug 28668/22207
  
  Revision  Changes    Path
  1.14      +72 -4     jakarta-struts/src/share/org/apache/struts/config/FormBeanConfig.java
  
  Index: FormBeanConfig.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/config/FormBeanConfig.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- FormBeanConfig.java	8 Apr 2004 22:07:56 -0000	1.13
  +++ FormBeanConfig.java	9 Jun 2004 00:25:34 -0000	1.14
  @@ -25,6 +25,9 @@
   import java.io.Serializable;
   import java.util.HashMap;
   import org.apache.struts.action.DynaActionForm;
  +import org.apache.struts.action.DynaActionFormClass;
  +import org.apache.struts.action.ActionServlet;
  +import org.apache.struts.action.ActionForm;
   
   
   /**
  @@ -55,10 +58,40 @@
       protected HashMap formProperties = new HashMap();
   
   
  +    /**
  +     * <p>The lockable object we can synchronize on when creating DynaActionFormClass.</p>
  +     */
  +    protected String lock = "";
  +
  +
       // ------------------------------------------------------------- Properties
   
   
       /**
  +     * The DynaActionFormClass associated with a DynaActionForm
  +     */
  +    protected transient DynaActionFormClass dynaActionFormClass;
  +
  +    /**
  +     * <p>Return the DynaActionFormClass associated with a DynaActionForm</p>
  +     *
  +     * @exception IllegalArgumentException if the ActionForm is not dynamic
  +     */
  +    public DynaActionFormClass getDynaActionFormClass() {
  +
  +        if (dynamic == false) {
  +            throw new IllegalArgumentException("ActionForm is not dynamic");
  +        }
  +        synchronized (lock) {
  +            if (dynaActionFormClass == null) {
  +                dynaActionFormClass = new DynaActionFormClass(this);
  +            }
  +        }
  +        return dynaActionFormClass;
  +    }
  +
  +
  +    /**
        * Is the form bean class an instance of DynaActionForm with dynamic
        * properties?
        */
  @@ -129,6 +162,41 @@
   
   
       // --------------------------------------------------------- Public Methods
  +
  +
  +    /**
  +     * <p>Create and return an <code>ActionForm</code> instance appropriate
  +     * to the information in this <code>FormBeanConfig</code>.</p>
  +     *
  +     * @param servlet The action servlet
  +     * @return ActionForm instance
  +     * @exception IllegalAccessException if the Class or the appropriate
  +     *  constructor is not accessible
  +     * @exception InstantiationException if this Class represents an abstract
  +     *  class, an array class, a primitive type, or void; or if instantiation
  +     *  fails for some other reason
  +     */
  +    public ActionForm createActionForm(ActionServlet servlet)
  +        throws IllegalAccessException, InstantiationException {
  +
  +        ActionForm instance = null;
  +
  +        // Create and return a new form bean instance
  +        if (getDynamic()) {
  +
  +            instance = (ActionForm)getDynaActionFormClass().newInstance();
  +
  +        } else {
  +
  +            instance = (ActionForm)formBeanClass().newInstance();
  +
  +        }
  +
  +        instance.setServlet(servlet);
  +
  +        return (instance);
  +
  +    }
   
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org