Class StackIntrospector

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  StackIntrospector.CallStack
      Hack to get the call stack as an array of classes.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private StackIntrospector()
      Private constructor to block instantiation.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Class getCallerClass​(java.lang.Class clazz)
      Find the caller of the passed in Class.
      static java.lang.Class getCallerClass​(java.lang.Class clazz, int stackDepthOffset)
      Find the caller of the passed in Class.
      static java.lang.String getCallerMethod​(java.lang.Class clazz)
      Get the method path name for the method from which the LogEvent was created, this includes the path name and the source filename and line number if the source was compiled with debugging on.
      private static StackIntrospector.CallStack getCallStack()
      Create Hack SecurityManager to get CallStack.
      static java.lang.String getRecentStack​(java.lang.Class clazz, int entries)
      Return the current call stack as a String, starting with the first call in the stack after a reference to the clazz class, and then display entries entries.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StackIntrospector

        private StackIntrospector()
        Private constructor to block instantiation.
    • Method Detail

      • getCallStack

        private static StackIntrospector.CallStack getCallStack()
                                                         throws java.lang.SecurityException
        Create Hack SecurityManager to get CallStack.
        Returns:
        the CallStack object
        Throws:
        java.lang.SecurityException - if an existing SecurityManager disallows construction of another SecurityManager
      • getCallerClass

        public static final java.lang.Class getCallerClass​(java.lang.Class clazz)
                                                    throws java.lang.SecurityException
        Find the caller of the passed in Class. May return null if caller not found on execution stack
        Parameters:
        clazz - the Class to search for on stack to find caller of
        Returns:
        the Class of object that called parrameter class
        Throws:
        java.lang.SecurityException - if an existing SecurityManager disallows construction of another SecurityManager and thus blocks method results
      • getCallerClass

        public static final java.lang.Class getCallerClass​(java.lang.Class clazz,
                                                           int stackDepthOffset)
        Find the caller of the passed in Class. May return null if caller not found on execution stack
        Parameters:
        clazz - the Class to search for on stack to find caller of
        stackDepthOffset - Offset call-stack depth to find caller
        Returns:
        the Class of object that called parrameter class
        Throws:
        java.lang.SecurityException - if an existing SecurityManager disallows construction of another SecurityManager and thus blocks method results
      • getCallerMethod

        public static final java.lang.String getCallerMethod​(java.lang.Class clazz)
        Get the method path name for the method from which the LogEvent was created, this includes the path name and the source filename and line number if the source was compiled with debugging on.
        Parameters:
        clazz - the Class to search for on stack to find caller of
        Returns:
        The method path name in the form "the.package.path.Method"
      • getRecentStack

        public static final java.lang.String getRecentStack​(java.lang.Class clazz,
                                                            int entries)
        Return the current call stack as a String, starting with the first call in the stack after a reference to the clazz class, and then display entries entries.

        This can be useful for debugging code to determine where calls to a method are coming from.

        Parameters:
        clazz - the last class on the stack you are not interested in!
        entries - the number of stack lines to return.
        Returns:
        The method path name in the form "the.package.path.Method"