package org.eclipse.dltk.core; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; public class SimplePriorityClassDLTKExtensionManager extends PriorityDLTKExtensionManager { protected static final String CLASS_ATTR = "class"; //$NON-NLS-1$ public SimplePriorityClassDLTKExtensionManager(String extensionPoint, String identifier) { super(extensionPoint, identifier); } public Object getObject(String id) { return getInitObject(getElementInfo(id)); } public Object getInitObject(ElementInfo ext) { try { if (ext != null) { if (ext.object != null) { return ext.object; } Object object = createObject(ext.config); ext.object = object; return object; } } catch (CoreException e) { if (DLTKCore.DEBUG) { e.printStackTrace(); } } return null; } protected Object createObject(IConfigurationElement cfg) throws CoreException { return cfg.createExecutableExtension(CLASS_ATTR); } public Object[] getObjects() { List objs = getObjectList(); return objs.toArray(new Object[objs.size()]); } protected List getObjectList() { ElementInfo[] infos = this.getElementInfos(); List objs = new ArrayList(); for (int i = 0; i < infos.length; i++) { Object o = getInitObject(infos[i]); if (o != null) { objs.add(o); } } return objs; } }