Java tutorial
// Copyright 2015 The Vanadium Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package io.v.rx; import com.google.common.collect.Iterables; import java.util.Arrays; import io.v.v23.verror.VException; /** * This wrapper for {@link VException} facilitates its use with lambdas and RxJava. Where this is * used, it is expected that alternate error handling mechanisms are in place. */ public class UncheckedVException extends RuntimeException { public UncheckedVException(final VException cause) { super(cause); } @Override public VException getCause() { return (VException) super.getCause(); } public boolean isIdIn(final Iterable<VException.IDAction> ids) { return Iterables.any(ids, id -> id.getID().equals(getCause().getID())); } public boolean isIdIn(final VException.IDAction... ids) { return isIdIn(Arrays.asList(ids)); } public static boolean isIdIn(final Throwable t, final Iterable<VException.IDAction> ids) { return t instanceof UncheckedVException && ((UncheckedVException) t).isIdIn(ids); } public static boolean isIdIn(final Throwable t, final VException.IDAction... ids) { return isIdIn(t, Arrays.asList(ids)); } }