/** @return Lazily created decompiler instance. */
 public IDecompiler getDecompiler() {
   IDecompiler decompiler = null;
   try {
     decompiler = (IDecompiler) configElement.createExecutableExtension(ATT_CLASS);
   } catch (CoreException e) {
     JdtDecompilerCorePlugin.logError(e, "Creating decompiler instance failed for id=" + id);
   }
   return decompiler;
 }
 private static DecompilerType parseType(IConfigurationElement configElement) {
   if (!configElement.getName().equals(TAG_DECOMPILER)) {
     return null;
   }
   try {
     return new DecompilerType(configElement);
   } catch (Exception e) {
     String name = configElement.getAttribute(ATT_NAME);
     if (name == null) {
       name = "[missing name attribute]";
     }
     String msg =
         "Failed to load decompiler named "
             + name
             + " in "
             + configElement.getDeclaringExtension().getContributor().getName();
     JdtDecompilerCorePlugin.logError(e, msg);
     return null;
   }
 }