code: @SuppressWarnings("unchecked")
      private void processManuallyTracedMethods(ClassTraceInfo info) {
          for (MethodNode mn : (List<MethodNode>) info.classNode.methods) {
              // Don't re-process methods that have already had trace injected
              if (isMethodAlreadyInjectedAnnotationPresent(mn)) {
                  continue;
              }
  
              // Look through the method's instruction stream for well known entry/exit methods
              Iterator<? extends AbstractInsnNode> instructionIterator = mn.instructions.iterator();
              while (instructionIterator.hasNext()) {
                  AbstractInsnNode insnNode = instructionIterator.next();
  
                  // Look for calls to Tr.entry, Tr.exit, Logger.entering, Logger.exiting
                  boolean manuallyTraced = false;
                  if (insnNode.getType() == AbstractInsnNode.METHOD_INSN) {
                      MethodInsnNode methodInsn = (MethodInsnNode) insnNode;
                      String methodName = methodInsn.name;
                      if (methodInsn.owner.equals(LOGGER_TYPE.getInternalName())) {
                          manuallyTraced = (methodName.equals("entering") || methodName.equals("exiting"));
                      } else if (methodInsn.owner.equals(LIBERTY_TR_TYPE.getInternalName())) {
                          manuallyTraced = (methodName.equals("entry") || methodName.equals("exit"));
                      } else if (methodInsn.owner.equals(WEBSPHERE_TR_TYPE.getInternalName())) {
                          manuallyTraced = (methodName.equals("entry") || methodName.equals("exit"));
                      }
                  }
  
                  // Mark the manually traced method, and create a warning
                  if (manuallyTraced) {
                      mn.visitAnnotation(MANUAL_TRACE_TYPE.getDescriptor(), true).visitEnd();
  
                      StringBuilder sb = new StringBuilder();
                      sb.append("WARNING: Hard coded entry/exit trace point found in ");
                      sb.append(info.classNode.name.replaceAll("/", "\\.")).append(".").append(mn.name).append(mn.desc);
                      sb.append(".  Skipping method.");
                      info.warnings.add(sb.toString());
                      break;
                  }
              }
          }
      }
docs: Process the class and look for hard-coded entry/exit trace points.
  Methods with hard-coded trace points will not be instrumented and
  a warning will be issued.
  
  @param info the collected class information