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.custom.CommonFileUI; import com.vci.client.portal.custom.ICommonFileUI; import com.vci.client.portal.custom.ICustomDefine; import com.vci.client.portal.utility.PRMItem; import com.vci.corba.common.VCIError; import com.vci.corba.omd.data.BusinessObject; public class CustomFileInterceptor implements ICustomDefine{ @Override public void getCustomValue(String key, Map customMap, List> datas) throws VCIError { Iterator itor = customMap.keySet().iterator(); while (itor.hasNext()) { String ckey = itor.next(); PRMItem prm = customMap.get(ckey); String fieldType = prm.getItemType(); List fileIds = new ArrayList(); for (Map data : datas) { String value = data.get(ckey); if (value == null || value.trim().equals("")) { continue; } fileIds.add(value); } ICommonFileUI fileUI = new CommonFileUI(); BusinessObject[] bos = fileUI.getMultiObjectFiles((String[]) fileIds .toArray(new String[0])); Map> idsMap = new HashMap>(); for (BusinessObject bo : bos) { String fileId = ObjectTool.getBOAttributeValue(bo, FileObjectType.SELECT_DOCUMENT_ID); List idList = idsMap.get(fileId); if (idList == null) { idList = new ArrayList(); } idList.add(bo); idsMap.put(fileId, idList); } for (Map data : datas) { String value = data.get(ckey); if (value == null || value.trim().equals("")) { data.put(fieldType + ":" + ckey.toLowerCase(), ""); continue; } List idList = idsMap.get(value); if (idList == null || idList.size() == 0) { data.put(fieldType + ":" + ckey.toLowerCase(), ""); continue; } StringBuffer idBuffer = new StringBuffer(); for (int i = 0; i < bos.length; ++i) { if (i != 0) { idBuffer.append(","); } idBuffer.append(bos[i].oid).append(":").append(bos[i].name); } data.put(fieldType + ":" + ckey.toLowerCase(), idBuffer.toString()); } } } }