package org.eclipse.dltk.core; import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; public class SimpleClassDLTKExtensionManager extends SimpleDLTKExtensionManager { private static final String CLASS_ATTR = "class"; //$NON-NLS-1$ public SimpleClassDLTKExtensionManager(String extension) { super(extension); } public Object[] getObjects() { final List infos = getElementInfoList(); Object[] objs = new Object[infos.size()]; int index = 0; for (int i = 0; i < infos.size(); i++) { final Object o = getInitObject((ElementInfo) infos.get(i)); if (o != null) { objs[index++] = o; } } if (index != objs.length) { final Object[] temp = new Object[index]; System.arraycopy(objs, 0, temp, 0, index); objs = temp; } return objs; } public Object getInitObject(ElementInfo ext) { try { if (ext != null) { if (ext.object != null) { return ext.object; } ext.object = createObject(ext.config); return ext.object; } } catch (CoreException e) { if (DLTKCore.DEBUG) { e.printStackTrace(); } } return null; } protected Object createObject(IConfigurationElement cfg) throws CoreException { return cfg.createExecutableExtension(CLASS_ATTR); } }