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