package com.vci.client.portal.custom; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import com.vci.omd.constants.FileObjectType; import com.vci.omd.utils.ObjectTool; import com.vci.client.portal.utility.PRMItem; import com.vci.corba.common.VCIError; import com.vci.corba.omd.data.BusinessObject; public class CustomMultiFileInterceptor implements ICustomDefine{ @Override public void getCustomValue(String key, Map customMap, List> datas) throws VCIError { if (customMap.keySet().size() <= 0) { return; } Iterator> citor = datas.iterator(); Map> cboMap = new HashMap>(); List idList = new ArrayList(); for (Map data : datas) { Map map = citor.next(); String oid = map.get("oid"); idList.add(oid); cboMap.put(oid, map); } ICommonFileUI fileUI = new CommonFileUI(); BusinessObject[] bos = fileUI.getMultiObjectFiles(idList.toArray(new String[0])); Map> sboFiles = new HashMap>(); for (int i = 0; i < bos.length; i++) { String oid = ObjectTool.getBOAttributeValue(bos[i], FileObjectType.SELECT_DOCUMENT_ID); if (sboFiles.get(oid) == null) { List fileBO = new ArrayList(); fileBO.add(bos[i]); sboFiles.put(oid, fileBO); } else { List fileBO = sboFiles.get(oid); fileBO.add(bos[i]); } } Iterator boIter = cboMap.keySet().iterator(); while (boIter.hasNext()) { String oid = boIter.next(); if (sboFiles.get(oid) == null) { continue; } BusinessObject[] fileBo = sboFiles.get(oid).toArray(new BusinessObject[0]); StringBuffer idBuffer = new StringBuffer(); for (int i = 0; i < fileBo.length; i++) { if (i != 0) { idBuffer.append(","); } idBuffer.append(fileBo[i].oid).append(":").append(fileBo[i].name); } Map map = cboMap.get(oid); map.put(key, idBuffer.toString()); } } }