String getTagFromStackFrame()

in google-cloud-spanner-hibernate-tools/src/main/java/com/google/cloud/spanner/hibernate/TransactionTagInterceptor.java [99:118]


  String getTagFromStackFrame(String prefix, StackFrame stackFrame) {
    Class<?> declaringClass = stackFrame.getDeclaringClass();
    if (declaringClass.getName().contains("$$")) {
      declaringClass = declaringClass.getSuperclass();
    }
    try {
      Method method =
          declaringClass.getDeclaredMethod(
              stackFrame.getMethodName(), stackFrame.getMethodType().parameterArray());
      if (method.isAnnotationPresent(TransactionTag.class)) {
        TransactionTag transactionTag = method.getAnnotation(TransactionTag.class);
        return transactionTag.value();
      } else if (autoTagTransactions) {
        return getAutoTagFromStackFrame(prefix, stackFrame);
      }
    } catch (NoSuchMethodException ignore) {
      // This should not happen
    }
    return null;
  }