Package org.xdoclet.plugin.ejb

Source Code of org.xdoclet.plugin.ejb.EjbConfig

/*
* 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();
    }

}
TOP

Related Classes of org.xdoclet.plugin.ejb.EjbConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.