package com.hundsun.ares.studio.jres.basicdata.resources.providers; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import com.hundsun.ares.studio.core.ARESModelException; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.IObjectProvider; import com.hundsun.ares.studio.model.reference.ReferenceFactory; import com.hundsun.ares.studio.model.reference.ReferenceInfo; import com.hundsun.ares.studio.reference.IReferenceInfoProvider; public class BasicdataReferenceInfoProvider implements IReferenceInfoProvider { private static final Logger logger = Logger.getLogger(BasicdataReferenceInfoProvider.class); @Override public List<ReferenceInfo> getReferenceInfos(IARESResource resource, Map<Object, Object> context) { List<ReferenceInfo> infoList = new ArrayList<ReferenceInfo>(); String restype = resource.getType(); ReferenceInfo refInfo = ReferenceFactory.eINSTANCE.createReferenceInfo(); refInfo.setResource(resource); refInfo.setRefName(resource.getName()); refInfo.setRefType(restype); refInfo.setRefNamespace(resource.getBundle().getId()); refInfo.setObjectProvider(new IObjectProvider() { @Override public Object getObject(IARESResource resource) { try { return resource.getInfo(Object.class); } catch (ARESModelException e) { e.printStackTrace(); logger.error(String.format("������Ϣ��ȡ��Դ%s����info��ʱ�����...", resource.getElementName()), e); return null; } } }); infoList.add(refInfo); return infoList; } }