/** * Check the properties extension point object. * * @param <P> The properties type. * @param clazz The class type. * @param id The extension id. * @param extension The extension attribute. * @return The properties instance from extension point or default one. */ private static <P> Collection<P> checkPropertiesExtensionPoint( Class<P> clazz, String id, String extension) { final IConfigurationElement[] nodes = Platform.getExtensionRegistry().getConfigurationElementsFor(id); final Collection<P> extensions = new ArrayList<>(); for (final IConfigurationElement node : nodes) { final String properties = node.getAttribute(extension); if (properties != null) { try { final P provider = UtilEclipse.createClass(properties, clazz); extensions.add(provider); } catch (final ReflectiveOperationException exception) { Verbose.exception(PropertiesPart.class, "checkPropertiesExtensionPoint", exception); } } } return extensions; }