/** * Դ�������ƣ�RefExtendedPropertyHelperManager.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�ARES Studio * ģ�����ƣ�com.hundsun.ares.studio.core * ����˵����$desc * ����ĵ��� * ���ߣ�sundl */ package com.hundsun.ares.studio.core.model.extend; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import com.hundsun.ares.studio.core.ARESCore; import com.hundsun.ares.studio.core.util.ExtendPointUtil; /** * * @author sundl */ public class RefExtendedPropertyProviderManager { private static Logger logger = Logger.getLogger(RefExtendedPropertyProviderManager.class); private static String EXTENSION_POINT = ARESCore.PLUGIN_ID + ".refExtendedPropertyProvider"; private static RefExtendedPropertyProviderManager INSTANCE; private Map<String, IRefExtendPropertyProvider> helpers = new HashMap<String, IRefExtendPropertyProvider>(); private RefExtendedPropertyProviderManager() { init(); } public static RefExtendedPropertyProviderManager getInstance() { if (INSTANCE == null) INSTANCE = new RefExtendedPropertyProviderManager(); return INSTANCE; } private void init() { IConfigurationElement[] elements = ExtendPointUtil.readAllConfiguredElements(EXTENSION_POINT); for (IConfigurationElement ele : elements) { String id = ele.getAttribute("id"); try { IRefExtendPropertyProvider helper = (IRefExtendPropertyProvider) ele.createExecutableExtension("class"); helpers.put(id, helper); } catch (CoreException e) { logger.error("", e); } } } public IRefExtendPropertyProvider getProvider(String id) { return helpers.get(id); } }