code: final void init() throws DiagnosticModuleRegistrationFailureException {
          if (initialized) {
              return;
          }
  
          initialized = true;
  
          Method[] methods = getClass().getMethods();
          for (Method method : methods) {
              String name = method.getName().toLowerCase();
  
              if (name.startsWith(FFDC_DUMP_PREFIX)) {
                  Class<?>[] params = method.getParameterTypes();
  
                  if (params.length == FFDC_DUMP_PARAMS.length) {
                      // Possible candidate method, so check the types
                      boolean allOK = true;
                      for (int i = 0; (i < params.length) && (allOK); i++) {
                          allOK = (params[i] == FFDC_DUMP_PARAMS[i]);
                      }
  
                      if (allOK) {
                          _directives.add(method.getName());
  
                          if (name.startsWith(FFDC_DUMP_DEFAULT_PREFIX))
                              _dumpDefaultMethods.add(method);
                          else
                              _dumpMethods.add(method);
                      } else if (makeNoise()) {
                          throw new DiagnosticModuleRegistrationFailureException("Error: " + method + " starts with " + FFDC_DUMP_DEFAULT_PREFIX
                                                                                 + " but does not conform to the signature.  Method skipped!");
                      }
                  } else if (makeNoise()) {
                      throw new DiagnosticModuleRegistrationFailureException("Error: " + method + " starts with " + FFDC_DUMP_DEFAULT_PREFIX
                                                                             + " but does not conform to the signature.  Method skipped!");
                  }
              }
          }
      }
docs: The init method is provided to subclasses to initialize this particular
  DiagnosticModule. Called when the diagnostic module is registered.
  
  <p>
  Done on a best-effort basis-- methods not matching the signature are not
  added. If the system property "com.ibm.ws.ffdc.debugDiagnosticModule" is
  set to true, exceptions and other logging will occur for malformed
  diagnostic module method signatures.
  
  @throws DiagnosticModuleRegistrationFailureException