You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

144 lines
5.4 KiB

package com.fr.plugin.pielinecomb.data;
import com.fr.base.chart.chartdata.BaseTableDefinition;
import com.fr.base.chart.chartdata.ChartData;
import com.fr.base.chart.chartdata.TopDefinitionProvider;
import com.fr.base.chart.chartdata.model.DataProcessor;
import com.fr.base.chart.cross.FormulaProcessor;
import com.fr.chart.chartdata.TableDataDefinition;
import com.fr.extended.chart.DataSet;
import com.fr.extended.chart.ExtendedReportDataSet;
import com.fr.extended.chart.ExtendedTableDataSet;
import com.fr.general.data.DataModel;
import com.fr.general.xml.GeneralXMLTools;
import com.fr.script.Calculator;
import com.fr.stable.AssistUtils;
import com.fr.stable.FCloneable;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader;
import java.util.*;
public class ExtendedMultiDataSet extends TableDataDefinition {
private Map<String, DataSet> multiDataSetMap = new HashMap();
public DataSet getSingleDataSet(String paramAbstractDataType)
{
return (DataSet)this.multiDataSetMap.get(paramAbstractDataType);
}
public void putSingleDataSet(String paramAbstractDataType, DataSet paramDataSet)
{
this.multiDataSetMap.put(paramAbstractDataType, paramDataSet);
}
@Override
public ChartData calcu4ChartData(Calculator paramCalculator, DataProcessor paramDataProcessor)
{
Iterator localIterator = this.multiDataSetMap.entrySet().iterator();
while (localIterator.hasNext())
{
Map.Entry localEntry = (Map.Entry)localIterator.next();
DataSet localDataSet = (DataSet)localEntry.getValue();
if ((localDataSet instanceof ExtendedTableDataSet)) {
((ExtendedTableDataSet)localDataSet).calcu4ChartData(paramCalculator, paramDataProcessor);
} else if ((localDataSet instanceof ExtendedReportDataSet)) {
((ExtendedReportDataSet)localDataSet).createChartData(paramCalculator);
}
}
return null;
}
@Override
public void dealFormula(FormulaProcessor paramFormulaProcessor)
{
super.dealFormula(paramFormulaProcessor);
Iterator localIterator = this.multiDataSetMap.values().iterator();
while (localIterator.hasNext())
{
DataSet localDataSet = (DataSet)localIterator.next();
if ((localDataSet instanceof TopDefinitionProvider)) {
((TopDefinitionProvider)localDataSet).dealFormula(paramFormulaProcessor);
}
}
}
@Override
public ChartData createChartData(DataModel paramDataModel, DataProcessor paramDataProcessor)
{
return null;
}
@Override
public List<DataModel> getDataModelList()
{
ArrayList localArrayList = new ArrayList();
Iterator localIterator = this.multiDataSetMap.entrySet().iterator();
while (localIterator.hasNext())
{
Map.Entry localEntry = (Map.Entry)localIterator.next();
DataSet localDataSet = (DataSet)localEntry.getValue();
if ((localDataSet instanceof BaseTableDefinition)) {
localArrayList.addAll(((BaseTableDefinition)localDataSet).getDataModelList());
}
}
return localArrayList;
}
@Override
public void writeXML(XMLPrintWriter paramXMLPrintWriter)
{
Iterator localIterator = this.multiDataSetMap.entrySet().iterator();
while (localIterator.hasNext())
{
Map.Entry localEntry = (Map.Entry)localIterator.next();
String localAbstractDataType = (String)localEntry.getKey();
DataSet localDataSet = (DataSet)localEntry.getValue();
if ((localDataSet instanceof XMLable)) {
GeneralXMLTools.writeXMLable(paramXMLPrintWriter, (XMLable)localDataSet, localAbstractDataType);
}
}
}
@Override
public void readXML(XMLableReader paramXMLableReader)
{
if (paramXMLableReader.isChildNode())
{
String str = paramXMLableReader.getTagName();
String localAbstractDataType = str;
this.multiDataSetMap.put(localAbstractDataType, (DataSet)GeneralXMLTools.readXMLable(paramXMLableReader));
}
}
@Override
public boolean equals(Object paramObject)
{
return ((paramObject instanceof ExtendedMultiDataSet)) && (AssistUtils.equals(this.multiDataSetMap, ((ExtendedMultiDataSet)paramObject).multiDataSetMap));
}
@Override
public ExtendedMultiDataSet clone()
throws CloneNotSupportedException
{
ExtendedMultiDataSet localExtendedMultiDataSet = (ExtendedMultiDataSet)super.clone();
HashMap localHashMap = new HashMap();
Iterator localIterator = this.multiDataSetMap.entrySet().iterator();
while (localIterator.hasNext())
{
Map.Entry localEntry = (Map.Entry)localIterator.next();
String localAbstractDataType = (String)localEntry.getKey();
DataSet localDataSet = (DataSet)localEntry.getValue();
localHashMap.put(localAbstractDataType, (localDataSet instanceof FCloneable) ? (DataSet)((FCloneable)localDataSet).clone() : localDataSet);
}
localExtendedMultiDataSet.multiDataSetMap = localHashMap;
return localExtendedMultiDataSet;
}
@Override
public int hashCode()
{
return super.hashCode() + AssistUtils.hashCode(new Object[] { this.multiDataSetMap });
}
}