package co.smartreceipts.android.persistence.database.controllers.results; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.google.common.base.Preconditions; import co.smartreceipts.android.persistence.database.operations.DatabaseOperationMetadata; public class InsertResult<ModelType> { private final ModelType model; private final Throwable throwable; private final DatabaseOperationMetadata databaseOperationMetadata; public InsertResult(@NonNull ModelType model, @NonNull DatabaseOperationMetadata databaseOperationMetadata) { this(model, null, databaseOperationMetadata); } public InsertResult(@NonNull ModelType model, @Nullable Throwable throwable, @NonNull DatabaseOperationMetadata databaseOperationMetadata) { this.model = Preconditions.checkNotNull(model); this.throwable = throwable; this.databaseOperationMetadata = Preconditions.checkNotNull(databaseOperationMetadata); } @NonNull public ModelType get() { return model; } @Nullable public Throwable getThrowable() { return throwable; } @NonNull public DatabaseOperationMetadata getDatabaseOperationMetadata() { return databaseOperationMetadata; } }