code: @Override
      public void sawOpcode(int seen) {
          String strCon = null;
  
          try {
              stack.precomputation(this);
  
              if (seen == Const.INVOKESPECIAL) {
                  String clsName = getClassConstantOperand();
                  if (SignatureUtils.isPlainStringConvertableClass(clsName)) {
                      String methodName = getNameConstantOperand();
                      String methodSig = getSigConstantOperand();
                      if (Values.CONSTRUCTOR.equals(methodName) && XML_SIG_BUILDER.withReturnType("V").toString().equals(methodSig) && (stack.getStackDepth() > 0)) {
                          OpcodeStack.Item itm = stack.getStackItem(0);
                          strCon = (String) itm.getConstant();
                      }
                  }
              } else if (seen == Const.INVOKEVIRTUAL) {
                  String clsName = getClassConstantOperand();
                  if (SignatureUtils.isPlainStringConvertableClass(clsName)) {
                      String methodName = getNameConstantOperand();
                      String methodSig = getSigConstantOperand();
                      if ("append".equals(methodName) && XML_SIG_BUILDER.withReturnType(clsName).toString().equals(methodSig) && (stack.getStackDepth() > 0)) {
                          OpcodeStack.Item itm = stack.getStackItem(0);
                          strCon = (String) itm.getConstant();
                      }
                  }
              }
  
              if (strCon != null) {
                  strCon = strCon.trim();
                  if (strCon.length() == 0) {
                      return;
                  }
  
                  for (XMLPattern pattern : xmlPatterns) {
                      Matcher m = pattern.getPattern().matcher(strCon);
                      if (m.matches()) {
                          xmlItemCount++;
                          if (pattern.isConfident()) {
                              xmlConfidentCount++;
                          }
                          if ((firstPC < 0) && (xmlConfidentCount > 0)) {
                              firstPC = getPC();
                          }
                          break;
                      }
                  }
              }
          } finally {
              stack.sawOpcode(this, seen);
          }
      }
docs: overrides the visitor to find String concatenations including xml strings
  
  @param seen
  the opcode that is being visited