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
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 }); |
|
} |
|
}
|
|
|