package org.netbeans.gradle.project.model;
import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.NbGradleProject;
@SuppressWarnings("serial") // Not serializable
public final class GradleModelLoadError extends Exception {
private final NbGradleProject project;
private final Throwable buildScriptEvaluationError;
private final Throwable unexpectedError;
public GradleModelLoadError(
NbGradleProject project,
Throwable buildScriptEvaluationError,
Throwable unexpectedError) {
super(pickNonNull(unexpectedError, buildScriptEvaluationError));
ExceptionHelper.checkNotNullArgument(project, "project");
this.project = project;
this.buildScriptEvaluationError = buildScriptEvaluationError;
this.unexpectedError = unexpectedError;
}
public static GradleModelLoadError fromBuildScriptError(
NbGradleProject project,
Throwable buildScriptEvaluationError) {
return new GradleModelLoadError(project, buildScriptEvaluationError, null);
}
public static GradleModelLoadError fromUnexpectedError(
NbGradleProject project,
Throwable unexpectedError) {
return new GradleModelLoadError(project, null, unexpectedError);
}
public Throwable getBuildScriptEvaluationError() {
return buildScriptEvaluationError;
}
public Throwable getUnexpectedError() {
return unexpectedError;
}
public NbGradleProject getProject() {
return project;
}
private static Throwable pickNonNull(Throwable... errors) {
for (Throwable error: errors) {
if (error != null) {
return error;
}
}
throw new IllegalArgumentException("One of exceptions must be non-null.");
}
}