package org.frameworkset.spi.assemble.plugin;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.frameworkset.spi.CallContext;
import org.frameworkset.spi.assemble.Pro;
import org.frameworkset.spi.assemble.ProList;
import org.frameworkset.spi.assemble.ProMap;
public class ExcelIOCPlugin implements IocPlugin<ProMap, Map<String, ExcelTemplate>>{
@Override
public Map<String, ExcelTemplate> ioc(ProMap promap, CallContext callcontext) {
Map<String, ExcelTemplate> excelTemplates = new HashMap<String, ExcelTemplate>();
Set<Map.Entry<String, Pro>> entries = promap.entrySet();
Iterator<Map.Entry<String, Pro>> it = entries.iterator();
while (it.hasNext()) {
Map.Entry<String, Pro> e = it.next();
String name = e.getKey();
Pro pro = e.getValue();
String templatepath = pro.getStringExtendAttribute("templatepath");
ExcelTemplate template = new ExcelTemplate();
template.setName(name);
template.setStarrow(pro.getIntExtendAttribute("statrow", 1));
template.setEndrow(pro.getIntExtendAttribute("endrow", -1));
template.setTemplatepath(templatepath);
excelTemplates.put(name, template);
if(!name.equals("exceltemplatefile4"))
{
List<ExcelCell> cellList = new ArrayList<ExcelCell>();
ProList templateCellList = pro.getList();
for (int i = 0; i < templateCellList.size(); i++) {
Pro cellPro = (Pro) templateCellList.get(i);
ExcelCell cellBean = new ExcelCell();
cellBean.setCellpostion(cellPro.getIntExtendAttribute("cellpostion"));
cellBean.setJavaFiledName(cellPro.getStringExtendAttribute("javaFiledName"));
cellBean.setCelltype(cellPro.getStringExtendAttribute("celltype"));
cellList.add(cellBean);
}
template.setCells(cellList);
}
else
{
@SuppressWarnings("unchecked")
List<ExcelCell> cellList = (List<ExcelCell>) pro.getBeanObject(callcontext);
template.setCells(cellList);
}
}
return excelTemplates;
}
}