Package reportgen.formatter.extended.range.cross

Source Code of reportgen.formatter.extended.range.cross.CrossReportProcessorInner

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package reportgen.formatter.extended.range.cross;

import java.util.Set;
import reportgen.formatter.extended.range.RangeProcessor;
import java.util.HashMap;
import java.util.Map;
import reportgen.utils.ReportException;
import reportgen.formatter.extended.Factory;
import reportgen.ren.report.extendedformat.range.RangeOrderList;
import reportgen.ren.report.extendedformat.range.cross.ColRowRangeCrossReport;
import reportgen.ren.report.extendedformat.range.cross.CrossReport;
import reportgen.ren.report.extendedformat.range.cross.CrossReportColumn;

/**
* Диапазонный процессор. Имеет ссылку на диапазон расширенного форматирования.
*
*
* @author axe
*/
public class CrossReportProcessorInner
        extends RangeProcessor<ColRowRangeCrossReport, RangeProcessor> {

    private final int rowIndex;

    /**
     *
     * @param dataRange
     * @param table
     */
    public CrossReportProcessorInner(RangeProcessor parent, ColRowRangeCrossReport dataRange,
            int rowIndex, long originalPosition) throws ReportException {
        super(parent, dataRange, originalPosition);
        this.rowIndex = rowIndex;

        inner.addAll(Factory.getProcessors(range.getInner(), this));
    }

    @Override
    public RangeOrderList getOrders() {
        return range.getOrders();
    }


    @Override
    protected Map getLocalModel() throws ReportException {
        HashMap<CrossReportColumn, Object> model = new HashMap<CrossReportColumn, Object>();
        CrossReport crossReport = range.getCrossReport();
        for(int i=0; i<crossReport.getColumnCount(); i++) {
            CrossReportColumn column = new CrossReportColumn(crossReport, i);
            model.put(column, crossReport.getSubReport().getColValue(i, rowIndex));
        }
        return model;
    }


    @Override
    protected boolean isFit(Map model) throws ReportException {
        return range.getCrossCriteria().getValue(model).equals(Boolean.TRUE);
    }

    @Override
    protected boolean checkExternalLinks(Set<RangeProcessor> fit) {
        return true;
    }


}
TOP

Related Classes of reportgen.formatter.extended.range.cross.CrossReportProcessorInner

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.