package com.basic.security.utils; import java.util.ArrayList; import java.util.List; public class FrameUtil { public static List getFrames() { List frames = new ArrayList<>(); try { throw new Exception(); } catch (Exception e) { StackTraceElement[] stackTraceElements = e.getStackTrace(); String tab = ""; for (StackTraceElement stackTraceElement : stackTraceElements) { tab += " "; frames.add( stackTraceElement.toString() ); } } return frames; } public static List getFrames(int frameIndex) { List 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++; } } return frames; } public static List getFrames(String filter) { List 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"); } } } return frames; } }