/*
|
* 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<SubReportDefinition> 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<ElementToDisplay> 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<ElementToDisplay> 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;
|
}
|
}
|