org.springframework.core
Class ExceptionDepthComparator
java.lang.Object
org.springframework.core.ExceptionDepthComparator
- All Implemented Interfaces:
- java.util.Comparator<java.lang.Class<? extends java.lang.Throwable>>
public class ExceptionDepthComparator
- extends java.lang.Object
- implements java.util.Comparator<java.lang.Class<? extends java.lang.Throwable>>
Comparator capable of sorting exceptions based on their depth from the thrown exception type.
- Since:
- 3.0.3
- Author:
- Juergen Hoeller, Arjen Poutsma
Field Summary |
private java.lang.Class<? extends java.lang.Throwable> |
targetException
|
Constructor Summary |
ExceptionDepthComparator(java.lang.Class<? extends java.lang.Throwable> exceptionType)
Create a new ExceptionDepthComparator for the given exception type. |
ExceptionDepthComparator(java.lang.Throwable exception)
Create a new ExceptionDepthComparator for the given exception. |
Method Summary |
int |
compare(java.lang.Class<? extends java.lang.Throwable> o1,
java.lang.Class<? extends java.lang.Throwable> o2)
|
static java.lang.Class<? extends java.lang.Throwable> |
findClosestMatch(java.util.Collection<java.lang.Class<? extends java.lang.Throwable>> exceptionTypes,
java.lang.Throwable targetException)
Obtain the closest match from the given exception types for the given target exception. |
private int |
getDepth(java.lang.Class declaredException,
java.lang.Class exceptionToMatch,
int depth)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface java.util.Comparator |
equals |
targetException
private final java.lang.Class<? extends java.lang.Throwable> targetException
ExceptionDepthComparator
public ExceptionDepthComparator(java.lang.Throwable exception)
- Create a new ExceptionDepthComparator for the given exception.
- Parameters:
exception
- the target exception to compare to when sorting by depth
ExceptionDepthComparator
public ExceptionDepthComparator(java.lang.Class<? extends java.lang.Throwable> exceptionType)
- Create a new ExceptionDepthComparator for the given exception type.
- Parameters:
exceptionType
- the target exception type to compare to when sorting by depth
compare
public int compare(java.lang.Class<? extends java.lang.Throwable> o1,
java.lang.Class<? extends java.lang.Throwable> o2)
- Specified by:
compare
in interface java.util.Comparator<java.lang.Class<? extends java.lang.Throwable>>
getDepth
private int getDepth(java.lang.Class declaredException,
java.lang.Class exceptionToMatch,
int depth)
findClosestMatch
public static java.lang.Class<? extends java.lang.Throwable> findClosestMatch(java.util.Collection<java.lang.Class<? extends java.lang.Throwable>> exceptionTypes,
java.lang.Throwable targetException)
- Obtain the closest match from the given exception types for the given target exception.
- Parameters:
exceptionTypes
- the collection of exception typestargetException
- the target exception to find a match for
- Returns:
- the closest matching exception type from the given collection