public IPluginModelBase findExtensionPointPlugin(String pointId) { IExtensionPoint point = getExtensionPoint(pointId); if (point == null) { return null; } IContributor contributor = point.getContributor(); return getPlugin(contributor, true); }
public IPluginModelBase[] findExtensionPlugins(String pointId, boolean activeOnly) { IExtensionPoint point = getExtensionPoint(pointId); if (point == null) { // if extension point for extension does not exist, search all plug-ins manually return activeOnly ? PluginRegistry.getActiveModels() : PluginRegistry.getAllModels(); } IExtension[] exts = point.getExtensions(); HashSet<IPluginModelBase> plugins = new HashSet<>(); for (int i = 0; i < exts.length; i++) { IPluginModelBase base = getPlugin(exts[i].getContributor(), false); if (base != null && !plugins.contains(base) && (!activeOnly || base.isEnabled())) plugins.add(base); } return plugins.toArray(new IPluginModelBase[plugins.size()]); }
public IPluginExtensionPoint findExtensionPoint(String pointId) { IExtensionPoint extPoint = getExtensionPoint(pointId); if (extPoint != null) { IPluginModelBase model = getPlugin(extPoint.getContributor(), true); if (model != null) { IPluginExtensionPoint[] points = model.getPluginBase().getExtensionPoints(); for (int i = 0; i < points.length; i++) { IPluginExtensionPoint point = points[i]; if (points[i].getFullId().equals(pointId)) { return point; } } } } return null; }
public IExtension[] findExtensions(String extensionPointId, boolean activeOnly) { ArrayList<IExtension> list = new ArrayList<>(); IExtensionPoint point = getExtensionPoint(extensionPointId); if (point != null) { IExtension[] extensions = point.getExtensions(); if (!activeOnly) return extensions; for (int i = 0; i < extensions.length; i++) { IPluginModelBase base = getPlugin(extensions[i].getContributor(), true); if (base != null && base.isEnabled()) list.add(extensions[i]); } } else { IPluginModelBase[] bases = activeOnly ? PluginRegistry.getActiveModels() : PluginRegistry.getAllModels(); for (int i = 0; i < bases.length; i++) { IContributor contributor = fStrategy.createContributor(bases[i]); if (contributor == null) continue; IExtension[] extensions = getRegistry().getExtensions(contributor); for (int j = 0; j < extensions.length; j++) { if (extensions[j].getExtensionPointUniqueIdentifier().equals(extensionPointId)) list.add(extensions[j]); } } } return list.toArray(new IExtension[list.size()]); }