1   /**
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4    * <p>
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    * <p>
9    * or (per the licensee's choosing)
10   * <p>
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  package ch.qos.logback.classic.spi;
15  
16  public interface IThrowableProxy {
17  
18      /**
19       * Return the overriding message if any. This method returns null
20       * if there is no overriding message.
21       *
22       * <p>Overriding message exists only if the original throwable implementation overrides the toString() method.</p>
23       *
24       * @return the overriding message or null
25       * @since 1.5.22
26       */
27      default String getOverridingMessage() {
28          return null;
29      }
30  
31      String getMessage();
32  
33      String getClassName();
34  
35      StackTraceElementProxy[] getStackTraceElementProxyArray();
36  
37      int getCommonFrames();
38  
39      IThrowableProxy getCause();
40  
41      IThrowableProxy[] getSuppressed();
42  
43      /**
44       * Is this instance the result of a cyclic exception?
45       *
46       * @return true if cyclic, false otherwise
47       * @since 1.3.0
48       */
49      boolean isCyclic();
50  }