use of org.eclipse.core.runtime.IExtensionRegistry in project knime-core by knime.
the class DataTypeRegistry method scanExtensionPointForSerializer.
private <T extends DataCell> Optional<DataCellSerializer<T>> scanExtensionPointForSerializer(final String cellClassName) {
// not found => scan extension point
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint(EXT_POINT_ID);
Optional<IConfigurationElement> o = Stream.of(point.getExtensions()).flatMap(ext -> Stream.of(ext.getConfigurationElements())).flatMap(cfe -> Stream.of(cfe.getChildren("serializer"))).filter(cfe -> cfe.getAttribute("cellClass").equals(cellClassName)).findFirst();
if (o.isPresent()) {
IConfigurationElement configElement = o.get();
return createSerializer(configElement);
} else {
return Optional.empty();
}
}
use of org.eclipse.core.runtime.IExtensionRegistry in project knime-core by knime.
the class DataTypeRegistry method scanExtensionPointForAllSerializers.
private void scanExtensionPointForAllSerializers() {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint(EXT_POINT_ID);
Stream.of(point.getExtensions()).flatMap(ext -> Stream.of(ext.getConfigurationElements())).flatMap(cfe -> Stream.of(cfe.getChildren("serializer"))).filter(cfe -> !m_cellClassMap.containsKey(cfe.getAttribute("cellClass"))).forEach(cfe -> createSerializer(cfe));
}
use of org.eclipse.core.runtime.IExtensionRegistry in project knime-core by knime.
the class ExtensibleUtilityFactory method loadAllFactories.
/*
* Load all extensible utility factories by traversing the renderer extension point. Not all factories may be
* loaded if nobody has access the data type yet.
* TODO This should be changed once we have an extension point for data types
*/
@SuppressWarnings("unchecked")
private static void loadAllFactories() {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint(EXT_POINT_ID);
assert point != null : "Invalid extension point id: " + EXT_POINT_ID;
for (IExtension ext : point.getExtensions()) {
IConfigurationElement[] elements = ext.getConfigurationElements();
for (IConfigurationElement valueClassElement : elements) {
String valueClassName = valueClassElement.getAttribute("valueClass");
try {
DataType.getUtilityFor((Class<? extends DataValue>) Class.forName(valueClassName));
} catch (ClassNotFoundException ex) {
NodeLogger.getLogger(ExtensibleUtilityFactory.class).coding("Could not find implementation for " + valueClassName, ex);
}
}
}
}
use of org.eclipse.core.runtime.IExtensionRegistry in project knime-core by knime.
the class OpenInteractiveWebViewAction method getConfiguredWizardNodeView.
@SuppressWarnings({ "rawtypes", "unchecked" })
static AbstractWizardNodeView getConfiguredWizardNodeView(final ViewableModel model) {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IConfigurationElement[] configurationElements = registry.getConfigurationElementsFor("org.knime.core.WizardNodeView");
Class<?> viewClass = null;
String classString = JSCorePlugin.getDefault().getPreferenceStore().getString(JSCorePlugin.P_VIEW_BROWSER);
if (StringUtils.isNotEmpty(classString)) {
// try loading selected view
viewClass = getViewClassByReflection(classString, configurationElements);
if (viewClass == null) {
LOGGER.error("JS view set in preferences (" + classString + ") can't be loaded. Switching to default.");
}
}
if (viewClass == null) {
// try loading defaults
viewClass = getViewClassByReflection(CHROMIUM_BROWSER, configurationElements);
if (viewClass == null) {
viewClass = getViewClassByReflection(CHROME_BROWSER, configurationElements);
try {
Method isChromePresentM = viewClass.getMethod("isChromePresent");
boolean isChromePresent = (boolean) isChromePresentM.invoke(null);
if (!isChromePresent) {
// no Chrome found on system, defaulting to SWT browser
viewClass = null;
}
} catch (Exception e) {
/* do nothing */
}
}
}
if (viewClass != null) {
try {
Method isEnabledM = viewClass.getMethod("isEnabled");
boolean isEnabled = (boolean) isEnabledM.invoke(null);
if (!isEnabled) {
LOGGER.error("JS view (" + classString + ") is not available. Falling back to internal SWT browser.");
viewClass = null;
}
} catch (Exception e) {
/*do nothing */
}
}
if (viewClass != null) {
try {
Constructor<?> constructor = viewClass.getConstructor(ViewableModel.class);
return (AbstractWizardNodeView) constructor.newInstance(model);
} catch (Exception e) {
LOGGER.error("JS view can not be initialized. Falling back to internal SWT browser.");
}
}
return new WizardNodeView(model);
}
use of org.eclipse.core.runtime.IExtensionRegistry in project knime-core by knime.
the class RepositoryManager method getExtensions.
/**
* Returns the extensions for a given extension point.
*
* @param pointID The extension point ID
*
* @return The extensions
*/
private static IExtension[] getExtensions(final String pointID) {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint(pointID);
if (point == null) {
throw new IllegalStateException("Invalid extension point : " + pointID);
}
return point.getExtensions();
}
Aggregations