/*
* Copyright (c) 2005
* XDoclet Team
* All rights reserved.
*/
package org.xdoclet.plugin.ejb;
import java.util.regex.Pattern;
import org.generama.QDoxCapableMetadataProvider;
import org.generama.WriterMapper;
import org.generama.defaults.QDoxPlugin;
import org.xdoclet.plugin.ejb.util.QDoxCachedMetadataProvider;
/**
* Configuration object common to EJB plugins<br>
* This is a plugin just to enable all plugin documentation<br>
* This plugin doesn't generate anything
*
* @author Diogo Quintela
* @version $Revision: 538 $
*/
public class EjbConfig extends QDoxPlugin {
private EjbVersion version = EjbVersion.get(EjbVersion.EJB_2_0);
private String ejbreplaceregex = "Bean|EJB|Ejb";
public EjbConfig(QDoxCapableMetadataProvider metadataProvider, WriterMapper writerMapper) throws ClassNotFoundException {
super(null, new QDoxCachedMetadataProvider(metadataProvider), writerMapper);
// Force multioutput path
// This and shouldGenerate always returning false,
// doesn't generate nothing
super.setMultioutput(true);
// Initiate runtime
EjbRuntime.init(this);
// Try to load one of the javax.ejb classes so the user can
// get an early warning if he has forgotten to stick it on the classpath
getClass().getClassLoader().loadClass("javax.ejb.EnterpriseBean");
}
/**
* Sets the version for generated config file
* @generama.property required="false" default="2.0" allowed-values="1.1, 2.0, 2.1"
* TODO: Remember to set 2.0 as default :)
*/
public void setVersion(String version) {
EjbVersion ejbVersion = EjbVersion.get(version);
if (ejbVersion == null) {
throw new IllegalArgumentException("Incorrect ejb-jar version : " + version);
}
this.version = ejbVersion;
}
public EjbVersion getEjbVersion() {
return this.version;
}
public String getEjbReplaceRegex() {
return this.ejbreplaceregex;
}
/**
* Sets the EJB Replace Regex for EJB Plugins.
* Needs to be a acceptable regular expression for {@link java.lang.String#replaceAll(java.lang.String, java.lang.String)}
*
* @generama.property required="false" default="Bean|EJB|Ejb"
*/
public void setEjbreplaceregex(String ejbreplaceregex) {
if (ejbreplaceregex == null) {
throw new NullPointerException();
}
Pattern.compile(ejbreplaceregex);
this.ejbreplaceregex = ejbreplaceregex;
}
/**
* Don't let multioutput be changed
*/
public void setMultioutput(boolean multioutput) {
throw new RuntimeException("Can't set multioutput for plugin");
}
/**
* Never generate anything
*/
public boolean shouldGenerate(Object metadata) {
return false;
}
// Increase visibility
public QDoxCapableMetadataProvider getMetadataProvider() {
return super.getMetadataProvider();
}
}