/** * <p>Copyright: Copyright (c) 2013</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.cres.extend.ui.module.gencode; import java.util.HashSet; import org.apache.log4j.Logger; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.Platform; import com.hundsun.ares.studio.cres.constant.ICresUIConstant; /** * @author qinyuan * */ public class GenCresModuleCodeManager { private Logger logger = Logger.getLogger(GenCresModuleCodeManager.class); private static GenCresModuleCodeManager instance = null; private GenCresModuleCodeManager() { init(); } /** * @return the instance */ public static GenCresModuleCodeManager getInstance() { synchronized (GenCresModuleCodeManager.class) { if(null == instance){ instance = new GenCresModuleCodeManager(); } return instance; } } private HashSet<IGenCresModuleCode> set = new HashSet<IGenCresModuleCode>(); private void init(){ logger.info("����CRESģ�����������չ�㡣"); IExtensionRegistry reg = Platform.getExtensionRegistry(); IConfigurationElement[] elements = reg.getConfigurationElementsFor(ICresUIConstant.PLUGIN_ID , IGenCresModuleCodeExtentionPoint.EP_NAME); for (IConfigurationElement element : elements) { try { GenCresModuleCodeItem tmp = new GenCresModuleCodeItem(); tmp.id = element.getAttribute(IGenCresModuleCodeExtentionPoint.EP_ATTR_ID); tmp.type = element.getAttribute(IGenCresModuleCodeExtentionPoint.EP_ATTR_TYPE); tmp.adapter = (IGenCresModuleCode)element.createExecutableExtension(IGenCresModuleCodeExtentionPoint.EP_ATTR_CLASS); set.add(tmp.adapter); }catch (Exception e) { logger.error(String.format("��ȡ��չ��%s.%sʧ��", ICresUIConstant.PLUGIN_ID,IGenCresModuleCodeExtentionPoint.EP_NAME)); } } } public HashSet<IGenCresModuleCode> getSet() { return set; } } class GenCresModuleCodeItem{ public String id; public String type; public IGenCresModuleCode adapter; }