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

es.urjc.etsii.grafo.services.ValidationResult Maven / Gradle / Ivy

package es.urjc.etsii.grafo.services;

import es.urjc.etsii.grafo.exception.InvalidSolutionException;

/**
 * Result of validating a solution
 */
public class ValidationResult {
    private final boolean isValid;
    private final String reasonFailed;

    /**
     * Is the solution valid?
     *
     * @return true if the solution passed all validations, false if any failed
     */
    public boolean isValid() {
        return isValid;
    }

    /**
     * If the validation failed, returns the cause.
     *
     * @return cause if validation failure
     */
    public String getReasonFailed() {
        return reasonFailed;
    }

    private ValidationResult(boolean isValid, String reasonFailed) {
        this.isValid = isValid;
        this.reasonFailed = reasonFailed;
    }

    public void throwIfFail(){
        if(!this.isValid()){
            throw new InvalidSolutionException(this.reasonFailed);
        }
    }

    /**
     * Validation passed
     *
     * @return ValidationResult
     */
    public static ValidationResult ok(){
        return new ValidationResult(true, "");
    }

    /**
     * Validation failed
     *
     * @param reason reason why the validation failed
     * @return ValidationResult
     */
    public static ValidationResult fail(String reason){
        return new ValidationResult(false, reason);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy