package com.basic.security.utils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class FrameUtil {
|
public static List<String> getFrames() {
|
List<String> frames = new ArrayList<>();
|
try {
|
throw new Exception();
|
} catch (Exception e) {
|
StackTraceElement[] stackTraceElements = e.getStackTrace();
|
for (StackTraceElement stackTraceElement : stackTraceElements) {
|
frames.add(stackTraceElement.toString());
|
}
|
}
|
// System.out.println("FrameUtil.getFrames " + frames);
|
return frames;
|
}
|
|
public static List<String> getFrames(int frameIndex) {
|
List<String> frames = new ArrayList<>();
|
try {
|
throw new Exception();
|
} catch (Exception e) {
|
StackTraceElement[] stackTraceElements = e.getStackTrace();
|
int i = 0;
|
for (StackTraceElement stackTraceElement : stackTraceElements) {
|
if (i == frameIndex) {
|
frames.add(stackTraceElement.toString());
|
break;
|
}
|
i++;
|
}
|
}
|
// System.out.println("FrameUtil.getFrames " + frames);
|
return frames;
|
}
|
|
public static List<String> getFrames(String filter) {
|
List<String> frames = new ArrayList<>();
|
try {
|
throw new Exception();
|
} catch (Exception e) {
|
StackTraceElement[] stackTraceElements = e.getStackTrace();
|
for (StackTraceElement stackTraceElement : stackTraceElements) {
|
String frame = stackTraceElement.toString();
|
if (frame != null && frame.contains(filter)) {
|
int index = 0;
|
for (int i = 0; i < frame.length(); i++) {
|
if (Character.isUpperCase(frame.charAt(i))) {
|
index = i;
|
break;
|
}
|
}
|
frames.add(frame.substring(index) + "\r\n");
|
}
|
}
|
}
|
// System.out.println("FrameUtil.getFrames " + frames);
|
return frames;
|
}
|
}
|