/**
* Դ�������ƣ�JRESContextManager.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.core
* ����˵����JRES Studio�Ļ����ܹ���ģ�淶
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.core.context;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
import org.eclipse.emf.ecore.EObject;
import com.hundsun.ares.studio.core.IARESBundle;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.context.statistic.IResourceTable;
import com.hundsun.ares.studio.core.model.util.Pair;
import com.hundsun.ares.studio.core.util.ResourcesUtil;
import com.hundsun.ares.studio.model.reference.ReferenceInfo;
import com.hundsun.ares.studio.reference.ReferenceManager;
/**
* @author sundl
* @Deprecated ʹ��ReferenceManager����صķ�������
*/
@Deprecated
public class JRESContextManager{
// private static Map<IARESProject, StatisticProviderProxy> statisticMap = new HashMap<IARESProject, StatisticProviderProxy>();
/**
* ��ȡͳ����Ϣ�ṩ��
* �������ù���
* @param project
* @return
* @Deprecated ʹ��ReferenceManager
*/
@Deprecated
public static IResStatisticProvider getStatisticProvider(IARESProject project){
return new JRESStatisticProvider(project, true);
}
// /**
// * ���ָ��project�Ĵ���proxy,��ִ�д���Ļ��������������Ҫ��ɾ���䴴����View��
// * @param aresProject
// */
// public static void removeStatisticProvider(IARESProject aresProject) {
// StatisticProviderProxy proxy = statisticMap.get(aresProject);
// if (proxy != null) {
// proxy.dispose();
// }
// statisticMap.remove(aresProject);
// }
/**
* ��ȡͳ����Ϣ�ṩ��
* @param project
* @return
*/
public static IResStatisticProvider getCurrentStatisticProvider(IARESProject project){
return new JRESStatisticProvider(project, false);
}
/**
* ��ȡ����������
* @param project
* @return
*/
public static IResReferenceProvider getReferencProvider(IARESProject project){
return new JRESReferencProvider(project);
}
/**
* ����һ������
* @param bundle
* @param name
* @param type
* @return
* @Deprecated ʹ��ReferenceManager��صĽӿڴ���
*/
@Deprecated
public static <T extends EObject> Pair<T , IARESResource> findResource(IARESBundle bundle, String name, String type, boolean useNameSpace) {
IARESProject project = ResourcesUtil.getARESProject(bundle);
String nameSpace = useNameSpace ? bundle.getInfo().getId() : IResourceTable.Scope_IGNORE_NAMESPACE;
// FIXME JRESĿǰ��ʹ�������ռ�
List<ReferenceInfo> infoListList = ReferenceManager.getInstance().getReferenceInfos(project, type, name, true);
if (infoListList!=null && infoListList.size()>0) {
return new Pair<T, IARESResource>((T)infoListList.get(0).getObject(), infoListList.get(0).getResource());
}
return null;
}
}