Package org.xdams.page.command

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

/*
* Created on 30-mag-2005
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.xdams.page.command;

import it.highwaytech.db.QueryResult;
import it.highwaytech.db.Title;

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

import org.springframework.ui.ModelMap;
import org.xdams.conf.master.ConfBean;
import org.xdams.page.form.bean.LookupBean;
import org.xdams.user.bean.UserBean;
import org.xdams.utility.Titles;
import org.xdams.utility.request.MyRequest;
import org.xdams.workflow.bean.WorkFlowBean;
import org.xdams.xmlengine.connection.manager.ConnectionManager;
import org.xdams.xw.XWConnection;


/**
* @author simoneAdm
*/
public class LookupCommand {

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

  private ModelMap modelMap = null;

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

  public void execute() throws Exception, SQLException {
    XWConnection xwconn = null;
    List<String> titleList = new ArrayList<String>();
    ConnectionManager connectionManager = new ConnectionManager();
     WorkFlowBean workFlowBean = null;
    Titles titlesPage = new Titles();
    LookupBean lookupBean = null;
    try {

       workFlowBean = (WorkFlowBean) modelMap.get("workFlowBean");
      lookupBean = (LookupBean) modelMap.get("lookupBean");
      xwconn = connectionManager.getConnection(workFlowBean.getArchiveLookup());
      QueryResult qr = null;
      String startPage = "";
      String keyCountQuery = MyRequest.getParameter("inputPerPage", "10", parameterMap);
      System.out.println("keyCountQuery keyCountQuery " + keyCountQuery);
      System.out.println("ENTRATO QUI " + (String) modelMap.get("selId"));
      System.out.println("ENTRATO selId " + MyRequest.getParameter("selId", parameterMap));

      if (!(MyRequest.getParameter("selId", parameterMap).trim()).equals("")) {
        qr = xwconn.getQRFromSelId(MyRequest.getParameter("selId", parameterMap));
        System.out.println("Lookup.execute()1111" + qr);
      } else {
        // System.out.println("ENTRATO QUA " + getQrSelId());
        qr = find(xwconn, "singoloTermine", keyCountQuery, lookupBean);
        System.out.println("Lookup.execute()2222" + qr);
      }
      System.out.println("Lookup.execute() " + qr);
      if (!MyRequest.getParameter("flagXML", parameterMap).equals("true")) {
        if (!lookupBean.getInputTitleRule().trim().equals("")) {
          xwconn.setTitleRule(xwconn.connection, workFlowBean.getArchiveLookup().getAlias(), lookupBean.getInputTitleRule());
        }
        System.out.println("Lookup.execute()333333" + qr);
        int totElements = qr.elements;
        // setQrSelId(qr.id);
        // System.out.println("PIPPETTO " + qr.elements + " FINE");
        if (!MyRequest.getParameter("startPage", parameterMap).equals("")) {
          startPage = MyRequest.getParameter("startPage", parameterMap);
        }
        if (startPage.equals("")) {
          titlesPage.setPages(Integer.parseInt(keyCountQuery), totElements);
        } else {
          titlesPage.setPages(Integer.parseInt(keyCountQuery), totElements, Integer.parseInt(startPage));
        }
        int ilPrimo = titlesPage.getFirstElement() - 1;
        for (int x = 0; x < Integer.parseInt(keyCountQuery); x++) {
          if (x + ilPrimo < totElements) {
            Title titolo = xwconn.getTitle(xwconn.connection, workFlowBean.getArchiveLookup().getAlias(), qr, x + ilPrimo);
            System.out.println(titolo.getTitle());
            titleList.add(titolo.getTitle());
          }
        }
        System.out.println("Lookup.execute()44444" + qr);
        modelMap.put("selId", qr.id);
        System.out.println("Lookup.execute()6666666" + qr);
      } else if (MyRequest.getParameter("flagXML", parameterMap).equals("true")) {
        lookupBean.setInputTitleRule("");
        int totElements = qr.elements;
        // setQrSelId(qr.id);
        System.out.println("PIPPETTO " + qr.elements + " FINE");
        if (!MyRequest.getParameter("startPage", parameterMap).equals("")) {
          startPage = MyRequest.getParameter("startPage", parameterMap);
        }

        if (startPage.equals("")) {
          titlesPage.setPages(Integer.parseInt(keyCountQuery), totElements);
        } else {
          titlesPage.setPages(Integer.parseInt(keyCountQuery), totElements, Integer.parseInt(startPage));
        }
        int ilPrimo = titlesPage.getFirstElement() - 1;
        StringBuffer buffer = new StringBuffer();
        for (int x = 0; x < Integer.parseInt(keyCountQuery); x++) {
          if (x + ilPrimo < totElements) {
            int numDoc = xwconn.getNumDocFromQRElement(qr, x + ilPrimo);
            String strXml = xwconn.getSingleXMLFromQr(qr, x + ilPrimo, false);
            try {
              titleList.add(strXml);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        }
        modelMap.put("selId", qr.id);
      }

    } catch (Exception e) {
      e.printStackTrace();
      throw new Exception(e.toString());
    } finally {
      modelMap.put("titleList", titleList);
      modelMap.put("titlesPage", titlesPage);
      try {
        if (!lookupBean.getInputTitleRule().trim().equals("")) {
          xwconn.restoreTitleRule(xwconn.connection, workFlowBean.getArchiveLookup().getAlias());
        }
        connectionManager.closeConnection(xwconn);
      } catch (Exception e1) {
        throw new Exception(e1.toString());
      }
    }
  }

  int contaQuery = 0;

  public QueryResult find(XWConnection xwconn, String tipoQuery, String keyCountQuery, LookupBean lookupBean) throws Exception {
    String flagQuery = "";
    QueryResult qr = null;
    try {
      String finalQuery = "";

      if (!lookupBean.getInputStrQuery().trim().equals("")) {
        if (tipoQuery.equals("singoloTermine")) {
          if (MyRequest.getParameter("flagXML", parameterMap).equals("true")) {
            finalQuery = lookupBean.getInputMultiArchivio() + lookupBean.getInputQuery() + "=" + lookupBean.getInputStrQuery();
          } else {
            finalQuery = lookupBean.getInputQuery() + "=" + lookupBean.getInputStrQuery();
          }
          flagQuery = "asterisco";
        } else if (tipoQuery.equals("asterisco")) {
          if (MyRequest.getParameter("flagXML", parameterMap).equals("true")) {
            finalQuery = lookupBean.getInputMultiArchivio() + "(" + lookupBean.getInputQuery() + "=" + lookupBean.getInputStrQuery() + "*) AND ([UD,/xw/@UdType]=" + lookupBean.getInputUdType() + ")";
          } else {
            finalQuery = "(" + lookupBean.getInputQuery() + "=" + lookupBean.getInputStrQuery() + "*) AND ([UD,/xw/@UdType]=" + lookupBean.getInputUdType() + ")";
          }

          flagQuery = "udType";
        } else if (tipoQuery.equals("udType")) {
          if (MyRequest.getParameter("flagXML", parameterMap).equals("true")) {
            finalQuery = lookupBean.getInputMultiArchivio() + "([UD,/xw/@UdType]=" + lookupBean.getInputUdType() + ")";
          } else {
            finalQuery = "([UD,/xw/@UdType]=" + lookupBean.getInputUdType() + ")";
          }

          flagQuery = "fine";
        }
      } else {
        if (MyRequest.getParameter("flagXML", parameterMap).equals("true")) {
          finalQuery = lookupBean.getInputMultiArchivio() + "([UD,/xw/@UdType]=" + lookupBean.getInputUdType() + ")";
        } else {
          finalQuery = "([UD,/xw/@UdType]=" + lookupBean.getInputUdType() + ")";
        }
        flagQuery = "fine";
      }
      // finalQuery = getInputQuery()+"="+getInputStrQuery();
      if (!lookupBean.getInputExtraQuery().trim().equals("")) {
        finalQuery += " AND " + lookupBean.getInputExtraQuery();
      }
      qr = xwconn.find(xwconn.connection, xwconn.getTheDb(), finalQuery, lookupBean.getInputSort(), it.highwaytech.broker.ServerCommand.find_SORT, -3, 0);
      // System.out.println("qr.elements " + qr.elements + " FINE");
      if (qr.elements == 0 && !tipoQuery.equals("fine")) {
        // System.out.println("ENTRATO IF ");
        // System.out.println("aaaaaaaaaa " + tipoQuery);
        // if (!tipoQuery.equals("fine")) {
        // System.out.println("QUI " + qr.elements + " FINE");
        find(xwconn, flagQuery, keyCountQuery, lookupBean);
        tipoQuery = "fine";
        // }
      }

    } catch (Exception e) {
      contaQuery++;
      if ((e.getMessage()).indexOf("stoplist") != -1 && (contaQuery >= 0 && contaQuery <= 4)) {
        flagQuery = "asterisco";
        find(xwconn, flagQuery, keyCountQuery, lookupBean);
      } else {
        throw e;
      }

    }
    // System.out.println("PRIMA DI RETURN " + qr.elements + " FINE");
    return qr;
  }

}
TOP

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

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.