package org.netbeans.gradle.project.model.issue;
import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.NbStrings;
public final class DependencyResolutionIssue {
public enum DependencyKind {
RUNTIME,
COMPILE;
}
private final String projectName;
private final String sourceSetName;
private final DependencyKind dependencyKind;
private final Throwable stackTrace;
public DependencyResolutionIssue(
String projectName,
String sourceSetName,
DependencyKind dependencyKind,
Throwable stackTrace) {
ExceptionHelper.checkNotNullArgument(projectName, "projectName");
ExceptionHelper.checkNotNullArgument(sourceSetName, "sourceSetName");
ExceptionHelper.checkNotNullArgument(dependencyKind, "dependencyKind");
ExceptionHelper.checkNotNullArgument(stackTrace, "stackTrace");
this.projectName = projectName;
this.sourceSetName = sourceSetName;
this.dependencyKind = dependencyKind;
this.stackTrace = stackTrace;
}
public static DependencyResolutionIssue compileIssue(String projectName, String sourceSetName, Throwable stackTrace) {
return new DependencyResolutionIssue(projectName, sourceSetName, DependencyKind.COMPILE, stackTrace);
}
public static DependencyResolutionIssue runtimeIssue(String projectName, String sourceSetName, Throwable stackTrace) {
return new DependencyResolutionIssue(projectName, sourceSetName, DependencyKind.RUNTIME, stackTrace);
}
public String getProjectName() {
return projectName;
}
public String getSourceSetName() {
return sourceSetName;
}
public DependencyKind getDependencyKind() {
return dependencyKind;
}
public Throwable getStackTrace() {
return stackTrace;
}
public String getMessage() {
switch (dependencyKind) {
case RUNTIME:
return NbStrings.getRuntimeDependencyResolutionFailure(projectName, sourceSetName);
case COMPILE:
return NbStrings.getCompileDependencyResolutionFailure(projectName, sourceSetName);
default:
throw new AssertionError(dependencyKind.name());
}
}
}