package org.netbeans.gradle.model.internal;
import java.io.File;
import java.io.Serializable;
import java.util.Collection;
import org.netbeans.gradle.model.GradleTaskID;
import org.netbeans.gradle.model.ProjectId;
import org.netbeans.gradle.model.util.CollectionUtils;
import org.netbeans.gradle.model.util.TransferableExceptionWrapper;
public final class ModelQueryOutput implements Serializable {
private static final long serialVersionUID = 1L;
private final BasicInfo basicInfo;
// Keys -> List of results of ProjectInfoBuilder
private final CustomSerializedMap projectInfoResults;
private final Throwable issue;
public ModelQueryOutput(
BasicInfo basicInfo,
CustomSerializedMap projectInfoResults,
Throwable issue) {
if (basicInfo == null) throw new NullPointerException("basicInfo");
if (projectInfoResults == null) throw new NullPointerException("projectInfoResults");
this.basicInfo = basicInfo;
this.projectInfoResults = projectInfoResults;
this.issue = TransferableExceptionWrapper.wrap(issue);
}
public Throwable getIssue() {
return issue;
}
public BasicInfo getBasicInfo() {
return basicInfo;
}
public CustomSerializedMap getProjectInfoResults() {
return projectInfoResults;
}
public static final class BasicInfo implements Serializable {
private static final long serialVersionUID = 1L;
private final ProjectId projectId;
private final String projectFullName;
private final File buildScript;
private final File buildDir;
private final Collection<GradleTaskID> tasks;
public BasicInfo(
ProjectId projectId,
String projectFullName,
File buildScript,
File buildDir,
Collection<GradleTaskID> tasks) {
if (projectId == null) throw new NullPointerException("projectId");
if (projectFullName == null) throw new NullPointerException("projectFullName");
if (buildDir == null) throw new NullPointerException("buildDir");
this.projectId = projectId;
this.projectFullName = projectFullName;
this.buildScript = buildScript;
this.buildDir = buildDir;
this.tasks = CollectionUtils.copyNullSafeList(tasks);
}
public ProjectId getProjectId() {
return projectId;
}
public String getProjectFullName() {
return projectFullName;
}
public File getBuildScript() {
return buildScript;
}
public File getBuildDir() {
return buildDir;
}
public Collection<GradleTaskID> getTasks() {
return tasks;
}
}
}