| package com.intellij.platform.templates.github; |
| |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * @author Sergey Simonchik |
| */ |
| public class Outcome<V> { |
| |
| private final V myData; |
| private final boolean myCancelled; |
| private final Exception myException; |
| |
| private Outcome(V data, boolean cancelled, Exception exception) { |
| myData = data; |
| myCancelled = cancelled; |
| myException = exception; |
| } |
| |
| @Nullable |
| public V get() { |
| return myData; |
| } |
| |
| public boolean isCancelled() { |
| return myCancelled; |
| } |
| |
| @Nullable |
| public Exception getException() { |
| return myException; |
| } |
| |
| @NotNull |
| public static <V> Outcome<V> createAsCancelled() { |
| return new Outcome<V>(null, true, null); |
| } |
| |
| @NotNull |
| public static <V> Outcome<V> createAsException(@NotNull Exception ex) { |
| return new Outcome<V>(null, false, ex); |
| } |
| |
| @NotNull |
| public static <V> Outcome<V> createNormal(@NotNull V data) { |
| return new Outcome<V>(data, false, null); |
| } |
| |
| } |