/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.megatim.reporting.adhoc.process; import com.megatim.reporting.adhoc.pojo.DescriptionEtat; import com.megatim.reporting.adhoc.pojo.DescriptionSousEtat; import com.megatim.reporting.adhoc.pojo.ElementToDisplay; import com.megatim.reporting.adhoc.pojo.ProcessorElements; import com.megatim.reporting.adhoc.pojo.ReportDefinition; import com.megatim.reporting.adhoc.pojo.SubReportDefinition; import java.util.ArrayList; import java.util.List; /** * * @author ASUS */ public class Processor { /** * Point d'entrée dans le moteur de reporting * @param desc : objet contenant l'ensemble des éléments de l'état(liste des colonnes à imprimer, liste des sous-rapports, * liste des éléments d'entête, etc) * @return * @throws Exception */ public String process(DescriptionEtat desc) throws Exception { ProcessorElements elements = constructReportElements(desc); return new SecondProcessor().generateJasperFile(elements); } private ProcessorElements constructReportElements(DescriptionEtat desc) { ReportDefinition repDef = reportDefinition(desc); List liste = new ArrayList<>(); for (DescriptionSousEtat ds : desc.getSubReportDescriptions()) { SubReportDefinition subRepDef = subReportDefinition(ds); liste.add(subRepDef); } repDef.getSubReportDefs().addAll(liste); ProcessorElements elements = new ProcessorElements(desc.getTemplateFile(), desc.getRepositoryFolder(), desc.getRepositoryFolder(), repDef); return elements; } private SubReportDefinition subReportDefinition(DescriptionSousEtat ds) { SubReportDefinition subRepDef = new SubReportDefinition(ds.getSubReportName(), ds.getDataField().getName(), ds.getReportTitle(), ds.getRangSousEtat()); subRepDef.setHaveLineNumber(ds.isHaveLineNumber()); List subEltToDisplay = new ArrayList<>(); for (ElementToDisplay e : ds.getElementsToDisplay()) { ElementToDisplay elt = new ElementToDisplay( e.getLibelle(), e.getValue()); elt.setPosition(e.getPosition()); elt.setElementType(e.getElementType()); subEltToDisplay.add(elt); } subRepDef.getElementsToDisplay().addAll(subEltToDisplay); subRepDef.getCustomFields().addAll(ds.getFieldsToDisplay()); return subRepDef; } private ReportDefinition reportDefinition(DescriptionEtat desc) { ReportDefinition repDef = new ReportDefinition(desc.getReportName()); repDef.setDetail(desc.isDetail()); List eltToDisplay = new ArrayList<>(); repDef.setHaveLineNumber(desc.isHaveLineNumber()); for (ElementToDisplay e : desc.getElementsToDisplay()) { ElementToDisplay elt = new ElementToDisplay(e.getLibelle(), e.getValue()); elt.setPosition(e.getPosition()); elt.setElementType(e.getElementType()); eltToDisplay.add(elt); } repDef.getElementsToDisplay().addAll(eltToDisplay); repDef.getCustomFields().addAll(desc.getFieldsToDisplay()); return repDef; } }