blob: 2fc21613ab03313f3e8428110a92a4df60c9768e [file] [log] [blame]
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;
}
}