⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 categorytreemanagerbean.java~1~

📁 用JBuilder+Jboos+mysql实现的EJB项目
💻 JAVA~1~
字号:
package com.jdon.estore.catalog.tree;

import javax.ejb.*;

import com.jdon.tree.ejb.NodeManagerLocal;
import com.jdon.tree.ejb.NodeManagerLocalHome;
import com.jdon.tree.exception.DeleteNodeException;

import com.jdon.sequence.SequenceGeneratorLocalHome;
import com.jdon.sequence.SequenceGeneratorLocal;

import com.jdon.servicelocator.ejb.ServiceLocator;
import com.jdon.estore.JNDINames;

import com.jdon.estore.catalog.CatalogEJBLocal;
import com.jdon.estore.catalog.CatalogEJBLocalHome;
import com.jdon.estore.catalog.CategoryDetails;
import com.jdon.estore.catalog.CategoryDetailsHome;

import com.jdon.strutsutil.treeview.ViewNode;
import com.jdon.controller.model.Node;
import com.jdon.estore.model.Category;
import com.jdon.controller.events.EventModel;

import org.apache.log4j.Logger;
import java.util.*;

public class CategoryTreeManagerBean implements SessionBean {
  private final static Logger logger = Logger.getLogger(CategoryTreeManagerBean.class);

  SessionContext sessionContext;
  private NodeManagerLocalHome nmHome;
  private CatalogEJBLocalHome catalogEJBHome;
  private CategoryDetailsHome cdHome;
  private Node rootNode = null;

  public void ejbCreate() throws CreateException {
    try {
      ServiceLocator sl = new ServiceLocator();
      nmHome = (NodeManagerLocalHome) sl.getLocalHome(JNDINames.NODE_MANAGER_HOME);
      catalogEJBHome = (CatalogEJBLocalHome) sl.getLocalHome(JNDINames.
          CATALOG_EJBHOME);
      cdHome = (CategoryDetailsHome) sl.getLocalHome(JNDINames.
          CATEGORY_DETAILS_HOME);

      this.rootNode = fetchRootNode();

    } catch (Exception ex) {
      logger.error("create error:" + ex);
      throw new CreateException();
    }
  }

  public Collection getROOTChildern() throws Exception {
    try {

      NodeManagerLocal nodeManager = nmHome.create();
      CatalogEJBLocal catalogEJB = catalogEJBHome.create();

      List childrenIDs = rootNode.getChildrenIDs();
      List children = new ArrayList(childrenIDs.size());

      Iterator iter = childrenIDs.iterator();
      Category category = null;
      ViewNode viewNode = null;
      while (iter.hasNext()) {
        Integer ID = (Integer) iter.next();
        category = catalogEJB.getCategory(ID.toString());
        viewNode = new ViewNode(category.getCatId(), category.getName());
        children.add(viewNode);
      }
      return children;
    } catch (Exception ex) {
      logger.error(ex);
      throw new Exception();
    }
  }

  private Node createRootNode() throws Exception {
    try {
      NodeManagerLocal nodeManager = nmHome.create();
      Node node = nodeManager.createRootNode(JNDINames.SEQUENCE_NAME);
      return node;
    } catch (Exception ex) {
      logger.error(ex);
      throw new Exception();
    }
  }

  public Node getRootNode() {
    return rootNode;
  }

  private Node fetchRootNode() throws Exception {
    try {
      NodeManagerLocal nodeManager = nmHome.create();
      Node node = nodeManager.getRootNode(JNDINames.SEQUENCE_NAME);
      if (node == null)
        node = createRootNode();
      return node;
    } catch (Exception ex) {
      logger.error(ex);
      throw new Exception();
    }
  }

  /**
   * 1.输入参数如果没有ParentID,默认为parent是根节点
   * 2.输入参数有paraentID,分两种情况,是否指定了兄弟的序号index
   *
   * @param em
   * @throws java.lang.Exception
   */
  public void addCategory(EventModel em) throws Exception {
    Category category = (Category) em.getModel();

    Integer parentID = null;
    if (category.getParentID() == 0) {
      parentID = rootNode.getID();
      appendCategory(parentID, category);
    } else {
      parentID = new Integer(category.getParentID());
      int index = category.getIndex();
      if (index == 0) {
        appendCategory(parentID, category);
      } else {
        addCategory(parentID, index, category);
      }
    }
  }

  private void appendCategory(Integer parentID, Category category) throws Exception {
    try {
      //插入数据库节点
      NodeManagerLocal nodeManager = nmHome.create();
      Node node = nodeManager.appendNode(parentID);

      //创建Category记录
      category.setCatId(node.getID().toString());
      cdHome.create(category.getCatId(), category.getName(),
                    category.getDescription());

    } catch (Exception ex) {
      logger.error(ex);
      throw new Exception();
    }
  }

  private void addCategory(Integer parentID, int index, Category category) throws Exception {
    try {
      //插入数据库节点
      NodeManagerLocal nodeManager = nmHome.create();
      Node node = nodeManager.addNode(parentID, index);

      //创建Category记录
      category.setCatId(node.getID().toString());
      cdHome.create(category.getCatId(), category.getName(),
                    category.getDescription());

    } catch (Exception ex) {
      logger.error(ex);
      throw new Exception();
    }
  }

  public void moveCategory(EventModel em) throws Exception {
    Category category = (Category) em.getModel();
    Integer newParentID = new Integer(category.getParentID());
    int newIndex = category.getIndex();
    Integer nodeID = new Integer(category.getCatId());
    try {

      NodeManagerLocal nodeManager = nmHome.create();
      nodeManager.moveNode(newParentID, newIndex, nodeID);
    } catch (Exception ex) {
      logger.error(ex);
      throw new Exception();
    }

  }

  public void updateCategory(EventModel em) throws Exception {
    Category category = (Category) em.getModel();
    try {
      logger.debug(" --> got categotyLocal by Id = " + category.getCatId());
      CategoryDetails categoryDetails = cdHome.findByPrimaryKey(category.
          getCatId());
      categoryDetails.setName(category.getName());
      categoryDetails.setDescription(category.getDescription());
    } catch (Exception ex) {
      logger.error(ex);
      em.setErrors("db.error");
    }
  }

  public void removeCategory(EventModel em) throws DeleteNodeException, Exception {
    Category category = (Category) em.getModel();
    Integer nodeID = new Integer(category.getCatId());
    try {
      NodeManagerLocal nodeManager = nmHome.create();
      nodeManager.removeNode(nodeID);

      cdHome.remove(nodeID);

    } catch (DeleteNodeException dex) {

    } catch (Exception ex) {
      logger.error(ex);
    }

  }

  public void ejbRemove() {
  /**@todo Complete this method*/
  }

  public void ejbActivate() {
  /**@todo Complete this method*/
  }

  public void ejbPassivate() {
  /**@todo Complete this method*/
  }

  public void setSessionContext(SessionContext sessionContext) {
    this.sessionContext = sessionContext;
  }
}

⌨️ 快捷键说明

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