// 
// Decompiled by Procyon v0.6.0
// 

package io.sentry.exception;

import io.sentry.util.Objects;
import org.jetbrains.annotations.NotNull;
import io.sentry.protocol.Mechanism;
import org.jetbrains.annotations.ApiStatus;

@ApiStatus.Internal
public final class ExceptionMechanismException extends RuntimeException
{
    private static final long serialVersionUID = 142345454265713915L;
    @NotNull
    private final Mechanism exceptionMechanism;
    @NotNull
    private final Throwable throwable;
    @NotNull
    private final Thread thread;
    private final boolean snapshot;
    
    public ExceptionMechanismException(@NotNull final Mechanism mechanism, @NotNull final Throwable throwable, @NotNull final Thread thread, final boolean snapshot) {
        this.exceptionMechanism = Objects.requireNonNull(mechanism, "Mechanism is required.");
        this.throwable = Objects.requireNonNull(throwable, "Throwable is required.");
        this.thread = Objects.requireNonNull(thread, "Thread is required.");
        this.snapshot = snapshot;
    }
    
    public ExceptionMechanismException(@NotNull final Mechanism mechanism, @NotNull final Throwable throwable, @NotNull final Thread thread) {
        this(mechanism, throwable, thread, false);
    }
    
    @NotNull
    public Mechanism getExceptionMechanism() {
        return this.exceptionMechanism;
    }
    
    @NotNull
    public Throwable getThrowable() {
        return this.throwable;
    }
    
    @NotNull
    public Thread getThread() {
        return this.thread;
    }
    
    public boolean isSnapshot() {
        return this.snapshot;
    }
}
