code: private boolean isConstrainedByInterface(FQMethod fqMethod) {
  
          try {
              JavaClass fqCls = Repository.lookupClass(fqMethod.getClassName());
              if (fqCls.isInterface()) {
                  return true;
              }
  
              for (JavaClass inf : fqCls.getAllInterfaces()) {
                  for (Method infMethod : inf.getMethods()) {
                      if (infMethod.getName().equals(fqMethod.getMethodName())) {
                          String infMethodSig = infMethod.getSignature();
                          String fqMethodSig = fqMethod.getSignature();
                          if (infMethodSig.equals(fqMethodSig)) {
                              return true;
                          }
  
                          List<String> infTypes = SignatureUtils.getParameterSignatures(infMethodSig);
                          List<String> fqTypes = SignatureUtils.getParameterSignatures(fqMethodSig);
  
                          if (infTypes.size() == fqTypes.size()) {
                              boolean matches = true;
                              for (int i = 0; i < infTypes.size(); i++) {
                                  String infParmType = infTypes.get(i);
                                  String fqParmType = fqTypes.get(i);
                                  if (infParmType.equals(fqParmType)) {
                                      if ((infParmType.charAt(0) != 'L') || (fqParmType.charAt(0) != 'L')) {
                                          matches = false;
                                          break;
                                      }
  
                                      JavaClass infParmClass = Repository.lookupClass(SignatureUtils.stripSignature(infParmType));
                                      JavaClass fqParmClass = Repository.lookupClass(SignatureUtils.stripSignature(fqParmType));
                                      if (!fqParmClass.instanceOf(infParmClass)) {
                                          matches = false;
                                          break;
                                      }
                                  }
                              }
  
                              if (matches) {
                                  return true;
                              }
                          }
                      }
                  }
              }
  
              return false;
          } catch (ClassNotFoundException cnfe) {
              bugReporter.reportMissingClass(cnfe);
              return true;
          }
      }
docs: looks to see if this method is an implementation of a method in an interface, including generic specified interface methods.
  
  @param fqMethod
  the method to check
  @return if this method is constrained by an interface method