1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.exceptions.stacktrace; 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.Incubating; 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/** 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Decides if particular StackTraceElement is excluded from the human-readable stack trace output. 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Mockito stack trace filtering mechanism uses this information. 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p> 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Excluding an element will make it not show in the cleaned stack trace. 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Not-excluding an element does not guarantee it will be shown 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * (e.g. it depends on the implementation of 12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Mockito internal {@link org.mockito.internal.exceptions.stacktrace.StackTraceFilter}). 13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p> 14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * The implementations are required to be thread safe. For example, make them stateless. 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p> 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * See the default implementation: {@link org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleaner}. 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson@Incubating 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic interface StackTraceCleaner { 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Decides if element is excluded. 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @param candidate element of the actual stack trace 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @return whether the element should be excluded from cleaned stack trace. 27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson boolean isOut(StackTraceElement candidate); 29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson} 30