User: stevensa
  Date: 02/03/03 17:25:29

  Modified:    core/src/xdoclet/ejb EjbDocletTask.java
  Added:       core/src/xdoclet/ejb DaoSubTask.java
  Log:
  Added DAO and Bluestone subtasks
  
  Revision  Changes    Path
  1.32      +17 -1     xdoclet/core/src/xdoclet/ejb/EjbDocletTask.java
  
  Index: EjbDocletTask.java
  ===================================================================
  RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/ejb/EjbDocletTask.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -w -r1.31 -r1.32
  --- EjbDocletTask.java        1 Mar 2002 07:21:39 -0000       1.31
  +++ EjbDocletTask.java        4 Mar 2002 01:25:29 -0000       1.32
  @@ -16,7 +16,7 @@
    *
    * @author    Ara Abrahamian ([EMAIL PROTECTED])
    * @created   April 30, 2001
  - * @version   $Revision: 1.31 $
  + * @version   $Revision: 1.32 $
    */
   public class EjbDocletTask extends DocletTask
   {
  @@ -30,6 +30,7 @@
        // Generic sub-tasks
        private DataObjectSubTask dataObject = null;
        private ValueObjectSubTask valueObject = null;
  +     private DaoSubTask dao = null;
        private EjbDotXmlSubTask deploymentDescriptor = null;
        private EntityBmpSubTask entityBmp = null;
        private EntityCmpSubTask entityCmp = null;
  @@ -47,6 +48,7 @@
        private OrionSubTask orion = null;
        private WebLogicSubTask webLogic = null;
        private MVCSoftSubTask mvcsoft = null;
  +     private BluestoneSubTask bluestone = null;
        private JRunSubTask jrun = null;
   
        // SOAP sub-task, since it uses methods from AbstractEjbCodeGeneratorSubTask 
for EJB providers it should be here
  @@ -107,6 +109,12 @@
                return dataObject;
        }
   
  +     public DaoSubTask createDao()
  +     {
  +             dao = new DaoSubTask();
  +             return dao;
  +     }
  +
        public ValueObjectSubTask createValueobject()
        {
                valueObject = new ValueObjectSubTask();
  @@ -197,6 +205,12 @@
                return mvcsoft;
        }
   
  +     public BluestoneSubTask createBluestone()
  +     {
  +             bluestone = new BluestoneSubTask();
  +             return bluestone;
  +     }
  +
        public ApacheSoapSubTask createApachesoap()
        {
                apachesoap = new ApacheSoapSubTask();
  @@ -238,6 +252,7 @@
                subtasks.addElement( this.session );
                subtasks.addElement( this.entityPk );
                subtasks.addElement( this.dataObject );
  +             subtasks.addElement( this.dao );
                subtasks.addElement( this.valueObject );
                subtasks.addElement( this.entityBmp );
                subtasks.addElement( this.entityCmp );
  @@ -251,6 +266,7 @@
                subtasks.addElement( this.utilObject );
                subtasks.addElement( this.mappingXmlSubTask );
                subtasks.addElement( this.mvcsoft );
  +             subtasks.addElement( this.bluestone );
                subtasks.addElement( this.jrun );
   
                return subtasks;
  
  
  
  1.1                  xdoclet/core/src/xdoclet/ejb/DaoSubTask.java
  
  Index: DaoSubTask.java
  ===================================================================
  package xdoclet.ejb;
  
  import com.sun.javadoc.ClassDoc;
  
  import xdoclet.TemplateSubTask;
  import xdoclet.XDocletException;
  import xdoclet.XmlSubTask;
  import xdoclet.XDocletTagSupport;
  import xdoclet.util.Log;
  import xdoclet.util.DocletUtil;
  import xdoclet.util.Translator;
  import xdoclet.ejb.tags.DaoTagsHandler;
  import xdoclet.ejb.tags.EjbTagsHandler;
  import xdoclet.tags.PackageTagsHandler;
  
  import java.io.File;
  
  import org.apache.log4j.Category;
  
  /**
   * @author    <a href="mailto:[EMAIL PROTECTED]";>Andrew Stevens</a>
   * @created   February 8, 2002
   * @version   $Revision: 1.1 $
   */
  public class DaoSubTask extends AbstractEjbCodeGeneratorSubTask
  {
        public final static String SUBTASK_NAME = "dao";
  
        public final static String DEFAULT_DAO_CLASS_PATTERN = "{0}DAO";
        private static String DEFAULT_TEMPLATE_FILE = "/xdoclet/ejb/dao.j";
  
        /**
         * A configuration parameter for specifying the DAO class name pattern. By
         * default the value is used for deciding the DAO class name. {0} in the value
         * mean current class's symbolic name which for an EJBean is the EJB name.
         *
         * @see   #getDaoClassPattern()
         */
        private String     daoClassPattern;
  
        public DaoSubTask()
        {
                setTemplateURL( getClass().getResource( DEFAULT_TEMPLATE_FILE ) );
                setDestinationFile( getDaoClassPattern() + ".java" );
                setOfType( "javax.ejb.EnterpriseBean" );
                setHavingClassTag( "ejb:dao" );
        }
  
        public String getSubTaskName()
        {
                return SUBTASK_NAME;
        }
  
        /**
         * Returns the configuration parameter for specifying the DAO class name
         * pattern. By default the value is used for deciding the DAO class name. {0}
         * in the value mean current class's symbolic name which for an EJBean is the
         * EJB name. If nothing explicitly specified by user then "{0}DAO" is used by
         * default.
         *
         * @return   The daoClassPattern value
         */
        public String getDaoClassPattern()
        {
                if( daoClassPattern != null )
                        return daoClassPattern;
                else
                        return DEFAULT_DAO_CLASS_PATTERN;
        }
  
        public void setPattern( String new_pattern )
        {
                daoClassPattern = new_pattern;
        }
  
        /**
         * Called to validate configuration parameters.
         *
         * @exception XDocletException  Description of Exception
         */
        public void validateOptions() throws XDocletException
        {
                super.validateOptions();
  
                if( getDaoClassPattern() == null || 
getDaoClassPattern().trim().equals( "" ) )
                {
                        throw new XDocletException( Translator.getString( 
"parameter_missing_or_empty", new String[]{"pattern"} ) );
                }
  
                if( getDaoClassPattern().indexOf( "{0}" ) == -1 )
                {
                        throw new XDocletException( Translator.getString( 
"xdoclet.ejb.Messages", "pattern_has_no_placeholder" ) );
                }
        }
  
        protected String getGeneratedFileName( ClassDoc clazz ) throws XDocletException
        {
                return PackageTagsHandler.packageNameAsPathFor( 
DaoTagsHandler.getDaoClassFor( getCurrentClass() ) ) + ".java";
        }
  
        protected void engineStarted() throws XDocletException
        {
                System.out.println( Translator.getString( "xdoclet.ejb.Messages", 
"generating_dao_for",
                        new String[]{getCurrentClass().qualifiedName()} ) );
        }
  
        protected boolean matchesGenerationRules( ClassDoc clazz ) throws 
XDocletException
        {
                Category cat = Log.getCategory( DaoSubTask.class, 
"matchesGenerationRules" );
  
                if( super.matchesGenerationRules( clazz ) == false )
                {
                        cat.debug( "Skip bean " + clazz.qualifiedName() + " because 
super.matchesGenerationRules() returned false." );
                        return false;
                }
  
                String generate = XDocletTagSupport.getParameterValue( clazz, 
DocletUtil.getText( getCurrentClass(), "ejb:dao", false ), "generate", -1 );
  
                if( ( generate != null ) && ( generate.equals( "false" ) || 
generate.equals( "no" ) ) )
                {
                        cat.debug( "Skip DAO class for " + clazz.qualifiedName() + " 
because of generate=" + generate + " flag." );
                        return false;
                }
  
                return true;
        }
  
  }
  
  
  

_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to