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

org.jobrunr.scheduling.exceptions.JobNotFoundException Maven / Gradle / Ivy

package org.jobrunr.scheduling.exceptions;

import org.jobrunr.jobs.JobDetails;
import org.jobrunr.jobs.JobParameter;
import org.jobrunr.jobs.JobParameterNotDeserializableException;

import java.util.stream.Stream;

public class JobNotFoundException extends RuntimeException {

    public JobNotFoundException(JobDetails jobDetails) {
        this(jobDetails.getClassName(),
                jobDetails.getMethodName(),
                jobDetails.getJobParameters().stream().map(JobNotFoundException::toJobParameterClassName).toArray(String[]::new),
                jobDetails.getJobParameters().stream().anyMatch(x -> x.getObject() instanceof JobParameterNotDeserializableException));
    }

    public JobNotFoundException(Class clazz, String methodName, Class[] parameterTypes) {
        this(clazz.getName(), methodName, Stream.of(parameterTypes).map(Class::getName).toArray(String[]::new), false);
    }

    public JobNotFoundException(String className, String methodName, String[] parameterTypes, boolean isJobParameterNotDeserializableException) {
        this(className + "." + methodName + "(" + String.join(",", parameterTypes) + ")" + (isJobParameterNotDeserializableException
                ? "\n\tcaused by: one of the JobParameters is not deserializable anymore"
                : ""));
    }

    public JobNotFoundException(String message) {
        super(message);
        this.setStackTrace(new StackTraceElement[0]);
    }

    private static String toJobParameterClassName(JobParameter jobParameter) {
        if(jobParameter.getObject() instanceof JobParameterNotDeserializableException) {
            return ((JobParameterNotDeserializableException)jobParameter.getObject()).getClassName();
        }
        return jobParameter.getClassName();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy