Update of
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-ejb/src/main/java/org/xdoclet/plugin/ejb/entity
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6319/plugin-ejb/src/main/java/org/xdoclet/plugin/ejb/entity
Added Files:
PrimaryKeyClassPlugin.vm PrimaryKeyClassPlugin.java
Log Message:
alpha commit
--- NEW FILE: PrimaryKeyClassPlugin.java ---
/*
* Copyright (c) 2005
* XDoclet Team
* All rights reserved.
*/
package org.xdoclet.plugin.ejb.entity;
import java.text.MessageFormat;
import org.generama.QDoxCapableMetadataProvider;
import org.generama.TemplateEngine;
import org.generama.WriterMapper;
import org.generama.defaults.JavaGeneratingPlugin;
import org.xdoclet.plugin.ejb.EjbConfig;
import org.xdoclet.plugin.ejb.EjbRuntime;
import org.xdoclet.plugin.ejb.EjbUtils;
import org.xdoclet.plugin.ejb.qtags.EjbPkTag;
import org.xdoclet.plugin.ejb.qtags.TagLibrary;
import com.thoughtworks.qdox.model.JavaClass;
/**
* Primary key class plugin
*
* @author Diogo Quintela
* @version $Revision: 1.1 $
*/
public class PrimaryKeyClassPlugin extends JavaGeneratingPlugin {
private EjbUtils ejbUtils;
private String fileregex;
private String filereplace;
private String packageregex;
private String packagereplace;
public PrimaryKeyClassPlugin(TemplateEngine templateEngine,
QDoxCapableMetadataProvider metadataProvider,
WriterMapper writerMapper, EjbConfig config) throws
ClassNotFoundException {
super(templateEngine, metadataProvider, writerMapper);
EjbRuntime.init(config, metadataProvider);
EjbRuntime.setPlugin(this);
setPackageregex("beans");
setPackagereplace("util");
setFileregex(config.getEjbReplaceRegex());
setFilereplace("PK");
setMultioutput(true);
this.ejbUtils = new EjbUtils();
new TagLibrary(metadataProvider);
}
public EjbConfig getConfig() {
return EjbRuntime.getConfig();
}
public EjbUtils getEjbUtils() {
return this.ejbUtils;
}
public void setFileregex(String fileregex) {
if (fileregex == null) {
throw new NullPointerException();
}
this.fileregex = fileregex;
super.setFileregex(fileregex);
}
public void setFilereplace(String filereplace) {
if (filereplace == null) {
throw new NullPointerException();
}
this.filereplace = filereplace;
super.setFilereplace(filereplace);
}
public void setPackageregex(String packageregex) {
if (packageregex == null) {
throw new NullPointerException();
}
this.packageregex = packageregex;
super.setPackageregex(packageregex);
}
public void setPackagereplace(String packagereplace) {
if (packagereplace == null) {
throw new NullPointerException();
}
this.packagereplace = packagereplace;
super.setPackagereplace(packagereplace);
}
public boolean shouldGenerate(Object metadata) {
JavaClass javaClass = (JavaClass) metadata;
boolean generate = ejbUtils.shouldGenerate(javaClass);
generate &= ejbUtils.isEntityBean(javaClass);
EjbPkTag pkTag = (EjbPkTag) javaClass.getTagByName("ejb.pk");
if (pkTag != null) {
generate &= pkTag.isGenerate();
// TODO: We should only generate if there is at least
// one @ejb.pk-field i guess
}
return generate;
}
public String getDestinationFilename(Object metadata) {
JavaClass javaClass = (JavaClass) metadata;
String retVal = null;
EjbPkTag pkTag = (EjbPkTag) javaClass.getTagByName("ejb.pk");
if (pkTag != null) {
retVal = pkTag.getClass_();
if (retVal != null) {
int idx = retVal.lastIndexOf('.');
retVal = (idx >= 0) ? retVal.substring(idx + 1) : retVal;
}
}
if (retVal == null) {
if (pkTag != null && pkTag.getPattern() != null) {
retVal = MessageFormat.format(pkTag.getPattern(), new String[]
{ejbUtils.getEjbName(javaClass)});
} else {
retVal = javaClass.getName();
retVal = retVal.replaceAll(fileregex, filereplace);
}
}
return retVal + ".java";
}
public String getDestinationPackage(Object metadata) {
JavaClass javaClass = (JavaClass) metadata;
String retVal = null;
EjbPkTag pkTag = (EjbPkTag) javaClass.getTagByName("ejb.pk");
if (pkTag != null) {
retVal = pkTag.getClass_();
if (retVal != null) {
int idx = retVal.lastIndexOf('.');
retVal = (idx >= 0) ? retVal.substring(0, idx) : "";
}
if (retVal == null) {
retVal = pkTag.getPackage();
}
}
if (retVal == null) {
retVal = javaClass.getPackage();
retVal = retVal.replaceAll(packageregex, packagereplace);
}
return retVal;
}
}
--- NEW FILE: PrimaryKeyClassPlugin.vm ---
#set( $class = $metadata )
// ${dontedit}
// Generated by $plugin.class.name from $class.fullyQualifiedName
package ${plugin.getDestinationPackage($class)};
public class ${plugin.getDestinationClassname($class)} {
// TODO:
}
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
xdoclet-plugins-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-plugins-commits