/** * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio */ package com.hundsun.ares.studio.model.reference; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import com.hundsun.ares.studio.core.ARESModelException; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.model.IReferenceProvider; import com.hundsun.ares.studio.core.model.Reference; import com.hundsun.ares.studio.core.model.ReferenceWithNamespace; import com.hundsun.ares.studio.core.model.util.ReferenceUtil; import com.hundsun.ares.studio.reference.IRelationInfoProvider; /** * @author gongyf * */ public class JRESRelationInfoProvider implements IRelationInfoProvider { /* (non-Javadoc) * @see com.hundsun.ares.studio.reference.IRelationInfoProvider#getRelationInfos(com.hundsun.ares.studio.core.IARESResource, java.util.Map) */ @Override public List<RelationInfo> getRelationInfos(IARESResource resource, Map<Object, Object> context) { List<RelationInfo> infoList = new ArrayList<RelationInfo>(); try { IReferenceProvider object = resource.getInfo(IReferenceProvider.class); if (object != null) { for (Reference r : ReferenceUtil.INSTANCE.getReferences(object, resource.getARESProject())) { RelationInfo info = ReferenceFactory.eINSTANCE.createRelationInfo(); info.setHostResource(resource); info.setUsedRefType(r.getType()); // ��Ҫ��������������Ϣû�������ռ���Ϣ��ʱ�򣬲�һ�������õĵ�ǰ���̵���Ϣ��Ҳ���������ð��������ù��̵���Ϣ if (r instanceof ReferenceWithNamespace) { info.setUsedRefName(((ReferenceWithNamespace) r).getId()); info.setUsedRefNamespace(((ReferenceWithNamespace) r).getNamespace()); } else { info.setUsedRefName(r.getValue()); info.setUsedRefNamespace(StringUtils.EMPTY); } infoList.add(info); } } } catch (ARESModelException e) { e.printStackTrace(); } return infoList; } }