// Generated by delombok at Sun Feb 26 12:31:38 KST 2017 package scouter.bytebuddy.matcher; /** * A fail-safe matcher catches exceptions that are thrown by a delegate matcher and returns an alternative value. * * @param <T> The type of the matched entity. */ public class FailSafeMatcher<T> extends ElementMatcher.Junction.AbstractBase<T> { /** * The delegate matcher that might throw an exception. */ private final ElementMatcher<? super T> matcher; /** * The fallback value in case of an exception. */ private final boolean fallback; /** * Creates a new fail-safe element matcher. * * @param matcher The delegate matcher that might throw an exception. * @param fallback The fallback value in case of an exception. */ public FailSafeMatcher(ElementMatcher<? super T> matcher, boolean fallback) { this.matcher = matcher; this.fallback = fallback; } @Override public boolean matches(T target) { try { return matcher.matches(target); } catch (Exception ignored) { return fallback; } } @Override public String toString() { return "failSafe(try(" + matcher + ") or " + fallback + ")"; } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") public boolean equals(final java.lang.Object o) { if (o == this) return true; if (!(o instanceof FailSafeMatcher)) return false; final FailSafeMatcher<?> other = (FailSafeMatcher<?>) o; if (!other.canEqual((java.lang.Object) this)) return false; final java.lang.Object this$matcher = this.matcher; final java.lang.Object other$matcher = other.matcher; if (this$matcher == null ? other$matcher != null : !this$matcher.equals(other$matcher)) return false; if (this.fallback != other.fallback) return false; return true; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") protected boolean canEqual(final java.lang.Object other) { return other instanceof FailSafeMatcher; } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") public int hashCode() { final int PRIME = 59; int result = 1; final java.lang.Object $matcher = this.matcher; result = result * PRIME + ($matcher == null ? 43 : $matcher.hashCode()); result = result * PRIME + (this.fallback ? 79 : 97); return result; } }