code: List getMatchingFormBeans( TypeDeclaration formType, Boolean usesPageFlowScopedFormBean )
      {
          //
          // Use the actual type of form to create the name.
          // This avoids conflicts if there are multiple forms using the
          // ANY_FORM_CLASS_NAME type.
          //
          String actualType = CompilerUtils.getLoadableName( formType );
  
          //
          // See if the app already has a form-bean of this type.  If so,
          // we'll just use it; otherwise, we need to create it.
          //
          List formBeans = getFormBeansByActualType( actualType, usesPageFlowScopedFormBean );
  
          if (formBeans == null) {
              // if not indicated assume not flow scoped when adding a new bean
              boolean isFlowScoped = false;
              if (usesPageFlowScopedFormBean != null) {
                  isFlowScoped = usesPageFlowScopedFormBean.booleanValue();
              }
              FormBeanModel formBeanModel = addNewFormBean(formType, isFlowScoped);
              formBeans = new ArrayList();
              formBeans.add(formBeanModel);
          }
          
          assert formBeans.size() > 0;
          return formBeans;
      }
docs: Returns a non-empty List of FormBeanModels that match the given form
  bean type. The <code>usesPageFlowScopedFormBean</code> parameter can
  be used to get the FormBeanModel for either a page flow scoped bean
  (<code>true</code>), not flow scoped (<code>false</code>), or both
  (<code>null</code>).
  @param formType the form bean class type to match
  @param usesPageFlowScopedFormBean flag to indicate that the bean is
  page flow scoped. If null, return all FormBeanModels of the given type
  regardless of being flow scoped or not.
  @return a non-empty List of FormBeanModels that match the given type