package baseplugin;
import inner.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IPlatformRunnable;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
public class PlatformRunnable4 implements IPlatformRunnable {
public Object run(Object args) throws Exception {
System.out.println("Jai Sri Rama");
PlatformRunnable1 plugin;
// plugin.run(args);
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(
"inner", // name of plugin that exposes this extension point
"Innerext"); //$NON-NLS-1$ - extension id
// Iterate over all declared extensions of this extension point.
// A single plugin may extend the extension point more than once, although it's not recommended.
for (IExtension extension : extensionPoint.getExtensions())
{
// Iterate over the children of the extension to find one named "factories".
for(IConfigurationElement factories : extension.getConfigurationElements())
{
if (!"application".equals(factories.getName())) { //$NON-NLS-1$ - name of configElement
continue;
}
// Iterate over the children of the "factories" element to find all the ones named "factory".
for (IConfigurationElement factory : factories.getChildren()) {
if (!"run".equals(factory.getName())) { //$NON-NLS-1$
continue;
}
try {
Object execExt = factory.createExecutableExtension("class"); //$NON-NLS-1$ - attribute name
if (execExt instanceof PlatformRunnable1){
////// HERE'S YOUR PAYLOAD:
plugin = (PlatformRunnable1)execExt;
plugin.run(null);
}
} catch(CoreException e) {
// AptPlugin.log(e, "Unable to load annotation factory from plug-in"); //$NON-NLS-1$
}
}
}
}
return null;
}
}