/**
  * 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;
 }