/** * TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L. * Copyright (C) 2007 Autentia Real Bussiness Solution S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autentia.tnt.xml; import java.util.ArrayList; import java.util.List; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; public class UtilitiesXPath { private static final Log log = LogFactory.getLog(UtilitiesXPath.class); /* type of reports */ private static List<List> reportListGeneral = null; private static List<List> reportListActivity = null; private static List<List> reportListBill = null; private static List<List> reportListProject = null; private static List<List> reportListOrganization = null; private static List<List> reportListInteraction = null; //private static List<List> reportList = null; private static List<String> nameReport = null; private static String expression = ""; private static NodeList nodes = null; private static List parametersName = null; private static List parametersDescription = null; private static List parametersDefaultValue = null; private static List nameClass = null; //private static List filesList = null; private static List tmpSend = null; public UtilitiesXPath() { log.debug("\n---- INICIO DEL PARSEADO -----\n"); /*reportListActivity = ExtractReport("com/autentia/tnt/report/activity"); reportListGeneral = ExtractReport("com/autentia/tnt/report/general"); reportListBill = ExtractReport("com/autentia/tnt/report/bill"); reportListProject = ExtractReport("com/autentia/tnt/report/project"); reportListOrganization = ExtractReport("com/autentia/tnt/report/organization");*/ log.debug("\n---- FIN DEL PARSEADO -----\n"); } public static List<List> ExtractReport(String folderReport) { List reportList = null; List filesList = null; try { reportList = new ArrayList<List>(); filesList = UtilitiesXML.filesFromFolder(folderReport); for(int i=0;i<filesList.size();i++) { List<List> tmp = new ArrayList<List>(); Document doc = UtilitiesXML.file2Document(filesList.get(i).toString()); XPath xpath = XPathFactory.newInstance().newXPath(); if (log.isDebugEnabled()){ log.debug("\n>> Nombre del informe: "); } expression = "/jasperReport[@name]"; nodes = (NodeList) xpath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET); nameReport = UtilitiesXML.printAttribute("name",nodes); nameReport.add(UtilitiesXML.cleanReport(filesList.get(i).toString())); if (log.isDebugEnabled()){ log.debug(nameReport.toString()); log.debug("Parametros: "); } expression = "/jasperReport/parameter[@name]"; nodes = (NodeList) xpath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET); parametersName = UtilitiesXML.printAttribute("name",nodes); if (log.isDebugEnabled()){ log.debug(parametersName.toString()); log.debug("Clases: "); } expression = "/jasperReport/paremeter[@class]"; nameClass = UtilitiesXML.printAttribute("class",nodes); if (log.isDebugEnabled()){ log.debug(nameClass.toString()); log.debug("Descripcion de Parametros: "); } expression = "/jasperReport/parameter/parameterDescription"; nodes = (NodeList) xpath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET); parametersDescription = UtilitiesXML.nodes2String(nodes); if (log.isDebugEnabled()){ log.debug(parametersDescription.toString()); log.debug("Valores por defectos: "); } expression = "/jasperReport/parameter/defaultValueExpression"; nodes = (NodeList) xpath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET); parametersDefaultValue = UtilitiesXML.nodes2String(nodes); if (log.isDebugEnabled()){ log.debug(parametersDefaultValue.toString()); log.debug("\n------------------------------------"); } tmp.add(nameReport); tmp.add(parametersName); tmp.add(nameClass); tmp.add(parametersDescription); tmp.add(parametersDefaultValue); reportList.add(tmp); } log.debug("Lista de informes:" + reportList); } catch (Exception e) { log.error(e); } return reportList; } public static List<List> getReportListActivity() { return reportListActivity; } public static void setReportListActivity(List<List> reportListActivity) { UtilitiesXPath.reportListActivity = reportListActivity; } public static List<List> getReportListBill() { return reportListBill; } public static void setReportListBill(List<List> reportListBill) { UtilitiesXPath.reportListBill = reportListBill; } public static List<List> getReportListGeneral() { return reportListGeneral; } public static void setReportListGeneral(List<List> reportListGeneral) { UtilitiesXPath.reportListGeneral = reportListGeneral; } public static List<List> getReportListInteraction() { if(reportListInteraction == null) { reportListInteraction = ExtractReport("com/autentia/tnt/report/interaction"); } return reportListInteraction; } public static void setReportListInteraction(List<List> reportListInteraction) { UtilitiesXPath.reportListInteraction = reportListInteraction; } public static List<List> getReportListOrganization() { return reportListOrganization; } public static void setReportListOrganization(List<List> reportListOrganization) { UtilitiesXPath.reportListOrganization = reportListOrganization; } public static List<List> getReportListProject() { return reportListProject; } public static void setReportListProject(List<List> reportListProject) { UtilitiesXPath.reportListProject = reportListProject; } }