Package xdoclet

Source Code of xdoclet.XDocletMain

/*
* Copyright (c) 2001, 2002 The XDoclet team
* All rights reserved.
*/
package xdoclet;

import org.apache.commons.logging.Log;
import xjavadoc.XJavaDoc;

import xdoclet.template.TemplateException;
import xdoclet.util.LogUtil;
import xdoclet.util.Translator;

/**
* This class serves as an entry-point for starting XDoclet.
*
* @author    Ara Abrahamian (ara_e@email.com)
* @author    Aslak Hellesoy
* @created   April 30, 2001
*/
public class XDocletMain
{
    /**
     * Starts XDoclet
     *
     * @param xJavaDoc
     * @exception XDocletException
     */
    protected void start(XJavaDoc xJavaDoc) throws XDocletException
    {
        Log log = LogUtil.getLog(XDocletMain.class, "start");

        try {
            log.debug("Context successfully loaded.");

            SubTask[] subtasks = DocletContext.getInstance().getSubTasks();

            for (int i = 0; i < subtasks.length; i++) {
                if (subtasks[i] != null) {
                    if (log.isDebugEnabled()) {
                        log.debug("SubTask " + subtasks[i].getSubTaskName() + " initialized.");
                    }

                    subtasks[i].init(xJavaDoc);
                    DocletContext.getInstance().setActiveSubTask(subtasks[i]);

                    log.info(Translator.getString(XDocletMessages.class, XDocletMessages.RUNNING_TASKNAME, new String[]{"<" + subtasks[i].getSubTaskName() + "/>"}));
                    subtasks[i].execute();
                }
            }
        }
        catch (XDocletException e) {
            log.error(Translator.getString(XDocletMessages.class, XDocletMessages.RUNNING_FAILED));
            log.error("<<" + e.getMessage() + ">>");

            if (e.getNestedException() != null) {
                e.getNestedException().printStackTrace();
            }

            if (e.getNestedException() instanceof TemplateException) {
                TemplateException te = (TemplateException) e.getNestedException();

                if (log.isDebugEnabled()) {
                    log.error("Template Exception = " + te);
                    log.error("Nested Exception = " + te.getNestedException());
                }
            }
            throw e;
        }
    }
}
TOP

Related Classes of xdoclet.XDocletMain

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.