package org.xdams.ajax.command; import it.highwaytech.db.QueryResult; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.springframework.ui.ModelMap; import org.xdams.ajax.bean.AjaxBean; import org.xdams.conf.master.ConfBean; import org.xdams.manager.conf.MultiEditingManager; 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; public class AjaxCommandNotInHier { private HttpServletRequest req = null; private HttpServletResponse res = null; private ModelMap modelMap = null; public AjaxCommandNotInHier(HttpServletRequest req, HttpServletResponse res, ModelMap modelMap) throws FileNotFoundException, IOException { this.req = req; this.res = res; this.modelMap = modelMap; } public AjaxBean execute() throws Exception { AjaxBean ajaxBean = new AjaxBean(); String nameFileXml = MyRequest.getParameter("nameFileXml", req.getParameterMap()); // aReq.getParameter("nameFileXml"); String xpath = MyRequest.getParameter("xpath", req.getParameterMap());// aReq.getParameter("xpath"); // System.err.println("aaaaaaaaaaaaaaaaaaaaaaa xpath " + xpath); // System.err.println("aaaaaaaaaaaaaaaaaaaaaaa nameFileXml " + nameFileXml); ConfBean confBean = null; WorkFlowBean workFlowBean = null; ConnectionManager connectionManager = new ConnectionManager(); XWConnection xwconn = null; List<String> confControl = new ArrayList<String>(); confControl.add("query"); try { UserBean userBean = (UserBean) modelMap.get("userBean"); confBean = (ConfBean) modelMap.get("confBean"); workFlowBean = (WorkFlowBean) modelMap.get("workFlowBean"); xwconn = connectionManager.getConnection(workFlowBean.getArchive()); MultiEditingManager editingManager = new MultiEditingManager(req.getParameterMap(), confBean, userBean, workFlowBean); editingManager.setTheXML(new XMLBuilder("root")); confBean = editingManager.rewriteMultipleConf(confControl); XMLBuilder xmlBuilder = confBean.getTheXMLConfQuery(); String qlphrase = xmlBuilder.valoreNodo("/root/access_method/query[@ajaxCheck='notinhier']/text()"); System.out.println("AjaxCommandNotInHier.execute() qlphrase " + qlphrase); if (!qlphrase.trim().equals("")) { int intDoc = Integer.parseInt(StringUtils.substringAfter(qlphrase.toLowerCase(), "notinhier:")); QueryResult queryResult = xwconn.getQRFromHier(intDoc, true); String query = " NOT ([?SEL]=" + queryResult.id + ") AND ([UD,/xw/@UdType/]=\"" + workFlowBean.getArchive().getPne() + "\")"; queryResult = xwconn.getQRfromPhrase(query); if (queryResult.elements != 0) { ajaxBean.setStrXmlOutput("" + queryResult.elements); } } } catch (Exception e) { e.printStackTrace(); ajaxBean.setStrXmlOutput("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<optionList><option><text>"+workFlowBean.getLocalizedString("Errore_Caricamento", "Errore Caricamento")+"</text><value></value></option>\n</optionList>"); } finally { connectionManager.closeConnection(xwconn); } return ajaxBean; } }