package com.hundsun.ares.studio.logic.resource.provider; 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.ARESResourceObjectProvider; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.IObjectProvider; import com.hundsun.ares.studio.core.model.JRESResourceInfo; import com.hundsun.ares.studio.logic.constants.LogicResourceMapping; 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 ReferenceInfoProvider implements IReferenceInfoProvider { private Logger logger = Logger.getLogger(ReferenceInfoProvider.class); public ReferenceInfoProvider() { } @Override public List<ReferenceInfo> getReferenceInfos(IARESResource resource, Map<Object, Object> context) { List<ReferenceInfo> infoList = new ArrayList<ReferenceInfo>(); //JRESResourceInfo info = resource.getInfo(JRESResourceInfo.class); 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(ARESResourceObjectProvider.INSTANCE); infoList.add(refInfo); String cnameType = LogicResourceMapping.getCNameType(restype); if(null != cnameType){ try { JRESResourceInfo info = resource.getInfo(JRESResourceInfo.class); if(info == null){ return infoList; } ReferenceInfo cnameRefInfo = ReferenceFactory.eINSTANCE.createReferenceInfo(); cnameRefInfo.setResource(resource); cnameRefInfo.setRefName(info.getChineseName()); cnameRefInfo.setRefType(cnameType); cnameRefInfo.setRefNamespace(resource.getBundle().getId()); cnameRefInfo.setObjectProvider(ARESResourceObjectProvider.INSTANCE); infoList.add(cnameRefInfo); } catch (Exception e) { } } return infoList; } }