Package org.xdams.page.command

Source Code of org.xdams.page.command.TitlePageCommand

package org.xdams.page.command;

import it.highwaytech.db.QueryResult;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap;
import org.xdams.conf.master.ConfBean;
import org.xdams.manager.conf.MultiEditingManager;
import org.xdams.page.query.bean.QueryBean;
import org.xdams.page.query.command.FindDocumentCommand;
import org.xdams.user.bean.UserBean;
import org.xdams.utility.request.MyRequest;
import org.xdams.workflow.bean.WorkFlowBean;
import org.xdams.xml.builder.XMLBuilder;
import org.xdams.xmlengine.connection.manager.ConnectionManager;
import org.xdams.xw.XWConnection;
import org.xdams.xw.paging.PagingTool;

public class TitlePageCommand {

  private Map<String, String[]> parameterMap = null;

  private ModelMap modelMap = null;

  public TitlePageCommand(Map<String, String[]> parameterMap, ModelMap modelMap) throws Exception {
    this.parameterMap = parameterMap;
    this.modelMap = modelMap;
  }

  public void execute() throws Exception {
    XWConnection xwconn = null;
    ConnectionManager connectionManager = new ConnectionManager();
    ConfBean confBean = null;
    QueryResult queryResult = null;
    HttpSession httpSession = null;
    String titleRole = "";
    List<String> confControl = new ArrayList<String>();
    confControl.add("titleManager");
    confControl.add("valoriControllati");
    confControl.add("media");
    confControl.add("query");
    try {
      UserBean userBean = (UserBean) modelMap.get("userBean");
      confBean = (ConfBean) modelMap.get("confBean");
      WorkFlowBean workFlowBean = (WorkFlowBean) modelMap.get("workFlowBean");
      httpSession = workFlowBean.getRequest().getSession(false);

      MultiEditingManager editingManager = new MultiEditingManager(parameterMap, confBean, userBean, workFlowBean);
      editingManager.setTheXML(new XMLBuilder("root"));
      confBean = editingManager.rewriteMultipleConf(confControl);

      // mettere queryBean
      System.out.println("QueryParserCommand.execute() workFlowBean.getAlias() " + workFlowBean.getAlias());
      System.out.println("QueryParserCommand.execute() aReq.getParameter(\"fromId\") " + workFlowBean.getRequest().getParameter("fromId") + "aaaaaaa");

      xwconn = connectionManager.getConnection(workFlowBean.getArchive());

      XMLBuilder builder = confBean.getTheXMLConfTitle();
      titleRole = builder.valoreNodo("/root/titleManager/sezione[@name='title']/titleRole/text()", false);
      System.out.println("QueryParserCommand.execute()" + titleRole);
      try {
        if (!titleRole.trim().equals("")) {
          xwconn.setTitleRole(titleRole);
        }
      } catch (Exception e) {
        System.out.println(" ---- ERROR ---- QueryParserCommand (xwconn.setTitleRole(titleRole)), title to parse: " + titleRole);
        xwconn.restoreTitleRole();
      }

      if (MyRequest.getParameter("fromId", parameterMap).equals("")) {
        FindDocumentCommand findDocumentCommand = null;
        try {
          findDocumentCommand = new FindDocumentCommand(parameterMap, modelMap);
          queryResult = findDocumentCommand.execute(workFlowBean, xwconn);
          // mi setto il selid per le operazioni di raffinamento
          workFlowBean.getRequest().setAttribute("qrId", queryResult.id);
          QueryBean queryBean = new QueryBean();
          queryBean.setDb(workFlowBean.getAlias());
          System.out.println("findDocumentCommand.getLaFrase() " + findDocumentCommand.getLaFrase());
          queryBean.setQuery(findDocumentCommand.getLaFrase());
          queryBean.setTot(String.valueOf(queryResult.elements));

          if (httpSession.getAttribute(workFlowBean.getQueryBeanName()) == null) {
            ArrayList arrQueryBean = new ArrayList();
            arrQueryBean.add(queryBean);
            httpSession.setAttribute(workFlowBean.getQueryBeanName(), arrQueryBean);
          } else {
            ArrayList arrQueryBean = (ArrayList) httpSession.getAttribute(workFlowBean.getQueryBeanName());
            boolean insert = true;
            int indexQr = 0;
            for (int i = 0; i < arrQueryBean.size(); i++) {
              QueryBean ilBean = (QueryBean) arrQueryBean.get(i);
              if (ilBean.getQuery().equals(queryBean.getQuery())) {
                insert = false;
                arrQueryBean.remove(i);
                arrQueryBean.add(queryBean);
                break;
              }
            }
            if (insert) {
              arrQueryBean.add(queryBean);
              httpSession.setAttribute(workFlowBean.getQueryBeanName(), arrQueryBean);
            }
          }
        } catch (Exception e) {
          queryResult = new QueryResult();
          workFlowBean.getRequest().setAttribute("qrId", queryResult.id);
        }
        System.out.println("QueryParserCommand.execute() " + findDocumentCommand.getLaFrase());
      } else {
        queryResult = xwconn.getQRFromSelId(MyRequest.getParameter("qrId", parameterMap));
        workFlowBean.getRequest().setAttribute("qrId", queryResult.id);
      }

      PagingTool pagingTool = new PagingTool(parameterMap, modelMap);
      pagingTool.pagingTitleBean(queryResult, xwconn);
    } catch (Exception e) {
      e.printStackTrace();
      throw new Exception(e.toString());
    } finally {
      if (!titleRole.trim().equals("")) {
        try {
          xwconn.restoreTitleRole();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      modelMap.put("confBean", confBean);
      connectionManager.closeConnection(xwconn);
    }
  }
}
TOP

Related Classes of org.xdams.page.command.TitlePageCommand

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.