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.
145 lines
5.4 KiB
145 lines
5.4 KiB
2 years ago
|
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 });
|
||
|
}
|
||
|
}
|