ejbstructfiller.java

来自「一个java 代码生成器」· Java 代码 · 共 224 行

JAVA
224
字号
/**
 * Copyright (c) 2002, Siddhartha P. Chandurkar siddhartha@visioncodified.com
 * All rights reserved.
 * Licensed under the Academic Free License version 1.1
 * See the file LICENSE.TXT for details.
 * LICENSE.txt is located in the directory  <install-directory>\Jenerator
 * of your Jenertaor Installation.
 *
 */
package com.jenerator.struct.ejb;

//<Imports>

import com.jenerator.struct.Filler;
import com.jenerator.util.Configurator;
import org.apache.log4j.Logger;

//<Imports>

/**
 * EjbStructFiller
 *
 * @author Siddhartha P. Chandurkar
 * @version 0.9.0
 */

public class EjbStructFiller implements Filler {


    //ATTRIBUTES
    private static Logger log = Logger.getLogger(EjbStructFiller.class.getName());
    private EjbStruct ejbStruct;
    private String type;
    private String attributeType;
    //The original Name of the attribute i.e. the column name in the Database table
    //It is needed to generate BMP queries.
    private String originalName;
    private String primKeyClass;
    private String primKey;
    private String exceptions;
    //For resource
    private String resDesc;
    private String resRefName;
    private String resType;
    private String resAuth;
    private String dsJndiName;


    //CONSTRUCTORS
    /**
     * EjbStructFiller
     * Takes the type of the Ejb i.e. Entity, Session or MDB as an argument
     *
     * @param   _type   A String containing the type of the EJB to be filled
     */
    public EjbStructFiller(String _type) {
        type = _type;
    }//EjbStructFiller

    /**
     * EjbStructFiller
     * The defaulut Constructor
     */
    public EjbStructFiller() {

    }//EjbStructFiller

    //METHODS
    /**
     * fill
     * This operation is invoked by the GenericXmlParser. Whenever it encounters any Node
     *
     * @param   nodeName    A String containing the current Node Name
     * @param   nodeValue   A String containing the current Node Value
     * @param   parent      A String containing the parent Node Name
     * @see GenericXmlParser
     */
    public void fill(String nodeName, String nodeValue, String parentName) {


        if (nodeName.equals("package") && (parentName.equals("entity")
                || parentName.equals("session") || parentName.equals("message-driven-bean")))
            ejbStruct.setPackageName(nodeValue);
        else if (nodeName.equals("import") && parentName.equals("imports"))
            ejbStruct.addImports(nodeValue);
        else if (nodeName.equals("remote"))
            ejbStruct.setRemoteName(nodeValue);
        else if (nodeName.equals("home"))
            ejbStruct.setHomeName(nodeValue);
        else if (nodeName.equals("ejb-class"))
            ejbStruct.setEjbClass(nodeValue);
        else if (nodeName.equals("ejb-name"))
            ejbStruct.setBeanName(nodeValue);
        else if (nodeName.equals("jndi-name"))
            ejbStruct.setJndiName(nodeValue);
        else if (nodeName.equals("unit-test-framework"))
            ejbStruct.setUnitTestingFramework(nodeValue);
        else if (nodeName.equals("type") && parentName.equals("attribute"))
            attributeType = nodeValue;
        else if (nodeName.equals("name") && parentName.equals("attribute"))
            originalName = nodeValue;
        else if (nodeName.equals("prim-key") && parentName.equals("attribute"))
            primKey = nodeValue;
        else if ((nodeName.equals("version") && parentName.equals("entity")) || (nodeName.equals("version") && parentName.equals("session"))) {
            try {
                ejbStruct.setEjbSpecVersion(nodeValue);
            } catch (WrongEJBSpecVersionException ex) {   //This exception is not needed it can be taken care by the DTD.
                log.fatal(ex);
            }
        } else if (nodeName.equals("attribute")) {
            if (primKey == null)
                ejbStruct.addAttribute(new AttributeStruct(nodeValue, attributeType, originalName));
            else
                ejbStruct.addAttribute(new AttributeStruct(nodeValue, attributeType, originalName, primKey));
        } else if (nodeName.equals("getters")) {
            if (nodeValue.equals("yes"))
                ((EntityStruct) ejbStruct).setGetterFlag(true);
            else
                ((EntityStruct) ejbStruct).setGetterFlag(false);
        } else if (nodeName.equals("setters") && parentName.equals("entity")) {
            if (nodeValue.equals("yes"))
                ((EntityStruct) ejbStruct).setSetterFlag(true);
            else
                ((EntityStruct) ejbStruct).setSetterFlag(false);
        } else if (nodeName.equals("table-name") && parentName.equals("entity")) {
            ((EntityStruct) ejbStruct).setTableName(nodeValue);
        } else if (nodeName.equals("prim-key-class") && parentName.equals("primary-key"))
            primKeyClass = nodeValue;
        else if (nodeName.equals("primkey-field") && parentName.equals("primary-key"))
            ((EntityStruct) ejbStruct).addPrimKey(nodeValue, primKeyClass);
        else if (nodeName.equals("persistence-type"))
            ((EntityStruct) ejbStruct).setPersistenceType(nodeValue);
        else if (nodeName.equals("value-object")) {
            if (nodeValue.equals("yes"))
                ((EntityStruct) ejbStruct).setValueObjects(true);
            else
                ((EntityStruct) ejbStruct).setValueObjects(false);
        } else if (nodeName.equals("setters") && parentName.equals("value-object")) {
            if (nodeValue.equals("yes"))
                ((EntityStruct) ejbStruct).setValueSetters(true);
            else
                ((EntityStruct) ejbStruct).setValueSetters(false);
        } else if (nodeName.equals("package") && parentName.equals("value-object")) {
            ((EntityStruct) ejbStruct).setValueObjectPackage(nodeValue);

        } else if (nodeName.equals("local")) {
            ((EntityStruct) ejbStruct).setLocalRemote(nodeValue);
        } else if (nodeName.equals("generate") && parentName.equals("local")) {
            ((EntityStruct) ejbStruct).setLocalGenerate(nodeValue);
        } else if (nodeName.equals("local-home")) {
            ((EntityStruct) ejbStruct).setLocalHome(nodeValue);
        } else if (nodeName.equals("exceptions") && parentName.equals("signature")) {
            exceptions = nodeValue;
        } else if (nodeName.equals("signature") && parentName.equals("method")) {
            if (exceptions == null) {
                exceptions = "null";
            }
            ejbStruct.addMethodSignature(nodeValue, exceptions);
        } else if (nodeName.equals("description") && parentName.equals("resource-ref")) {
            resDesc = nodeValue;
        } else if (nodeName.equals("res-ref-name") && parentName.equals("resource-ref")) {
            resRefName = nodeValue;
        } else if (nodeName.equals("res-type") && parentName.equals("resource-ref")) {
            resType = nodeValue;
        } else if (nodeName.equals("res-auth") && parentName.equals("resource-ref")) {
            resAuth = nodeValue;
        } else if (nodeName.equals("datasource-jndi-name") && parentName.equals("resource-ref")) {
            dsJndiName = nodeValue;
            ejbStruct.setResRefStruct(new ResourceRefStruct(resDesc, resRefName, resType, resAuth, dsJndiName));
        } else if (nodeName.equals("session-type"))
            ((SessionStruct) ejbStruct).setSessionType(nodeValue);
        else if (nodeName.equals("transaction-type") && parentName.equals("session"))
            ((SessionStruct) ejbStruct).setTransactionType(nodeValue);
        else if (nodeName.equals("transaction-type") && parentName.equals("message-driven-bean"))
            ((MDBStruct) ejbStruct).setTransactionType(nodeValue);
        else if (nodeName.equals("message-selector"))
            ((MDBStruct) ejbStruct).setMessageSelector(nodeValue);
        else if (nodeName.equals("acknowledge-mode"))
            ((MDBStruct) ejbStruct).setAcknowledgeMode(nodeValue);
        else if (nodeName.equals("destination-type") && parentName.equals("message-driven-destination"))
            ((MDBStruct) ejbStruct).setDestination(nodeValue);
        else if (nodeName.equals("subscription-durability") && parentName.equals("message-driven-destination"))
            ((MDBStruct) ejbStruct).setSubscriptionDurability(nodeValue);

    }


    /**
     * setStartOfNode
     * Tells whether it is the start of the node or not.
     * This method is called by the GenericXmlPaser
     * @param   flag    A boolean telling whether it is the start of the node or not
     * @see GenericXmlParser
     */
    public void setStartOfNode(boolean flag) {
        if (flag == true) {
            if (type.equals("entity"))
                ejbStruct = new EntityStruct();
            else if (type.equals("session"))
                ejbStruct = new SessionStruct();
            else if (type.equals("message-driven-bean"))
                ejbStruct = new MDBStruct();

        } else {
            Configurator.getInstance().getConfigStructs().addEjbStruct(ejbStruct);
        }
    }

    /**
     * setRootElement
     * Tells the root element from which the parsing has started.
     * Here the meaning of root element is the element from where the parsing has been
     * started by the GenericXmlParser it can be any element in the heirarchy of XML element
     * This method is called by the GenericXmlPaser
     *
     * @param   _rootElement    A String which contains the name  of the root element.
     * @see GenericXmlParser
     */
    public void setRootElement(String _rootElement) {
        type = _rootElement;
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?