protected void lazyInitialize() { if (descriptors != null) return; IExtensionPoint point = Platform.getExtensionRegistry() .getExtensionPoint(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_MODEL_PROVIDERS); IExtension[] extensions = point.getExtensions(); descriptors = new HashMap(extensions.length * 2 + 1); for (int i = 0, imax = extensions.length; i < imax; i++) { IModelProviderDescriptor desc = null; try { desc = new ModelProviderDescriptor(extensions[i]); } catch (CoreException e) { Policy.log(e); } if (desc != null) descriptors.put(desc.getId(), desc); } // do cycle detection now so it only has to be done once // cycle detection on a graph subset is a pain detectCycles(); }
/** * Creates a WizardElement representing the template extension to be used by this wizard. * * @return element representing the template or <code>null</code> if the extension could not be * loaded */ private WizardElement getTemplateWizard() { String templateID = getTemplateID(); if (templateID == null) { return null; } IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint point = registry.getExtensionPoint(PDEPlugin.getPluginId(), PLUGIN_POINT); if (point == null) { return null; } IExtension[] extensions = point.getExtensions(); for (int i = 0; i < extensions.length; i++) { IConfigurationElement[] elements = extensions[i].getConfigurationElements(); for (int j = 0; j < elements.length; j++) { if (elements[j].getName().equals(TAG_WIZARD)) { if (templateID.equals(elements[j].getAttribute(WizardElement.ATT_ID))) { return WizardElement.create(elements[j]); } } } } return null; }