All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.logz.sawmill.ProcessResult Maven / Gradle / Ivy

The newest version!
package io.logz.sawmill;

import io.logz.sawmill.exceptions.ProcessorExecutionException;

import java.util.Optional;

import static io.logz.sawmill.Result.DROPPED;
import static io.logz.sawmill.Result.FAILED;
import static io.logz.sawmill.Result.SUCCEEDED;

public class ProcessResult {
    private final Result result;
    private final Optional error;

    private static ProcessResult processSucceeded = new ProcessResult();
    private static ProcessResult processDropped = new ProcessResult(DROPPED);

    private ProcessResult() {
        this(SUCCEEDED);
    }

    private ProcessResult(Result result) {
        this.result = result;
        this.error = Optional.empty();
    }

    private ProcessResult(String errorMessage) {
        this(errorMessage, null);
    }

    private ProcessResult(String errorMessage, ProcessorExecutionException e) {
        this.result = FAILED;
        this.error = Optional.of(new Error(errorMessage, Optional.ofNullable(e)));
    }

    public boolean isSucceeded() {
        return result == SUCCEEDED;
    }

    public boolean isDropped() {
        return result == DROPPED;
    }

    public Optional getError() {
        return error;
    }

    public static ProcessResult success() {
        return processSucceeded;
    }

    public static ProcessResult failure(String errorMessage) {
        return new ProcessResult(errorMessage);
    }

    public static ProcessResult failure(String errorMessage, ProcessorExecutionException e) {
        return new ProcessResult(errorMessage, e);
    }

    public static ProcessResult drop() {
        return processDropped;
    }

    public static class Error {
        private final String message;
        private final Optional exception;

        public Error(String message, Optional exception) {
            this.message = message;
            this.exception = exception;
        }

        public String getMessage() {
            return message;
        }

        public Optional getException() {
            return exception;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy