package io.takari.maven.plugins.compile;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.maven.SessionScoped;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
import com.google.common.collect.ImmutableMap;
@Named
@SessionScoped
class ReactorProjects {
private final Map<String, MavenProject> projects;
@Inject
public ReactorProjects(MavenSession session) {
Map<String, MavenProject> projects = new HashMap<>();
for (MavenProject project : session.getProjects()) {
projects.put(key(project.getGroupId(), project.getArtifactId(), project.getVersion()), project);
}
this.projects = ImmutableMap.copyOf(projects);
}
public MavenProject get(Artifact artifact) {
return projects.get(key(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()));
}
private static String key(String groupId, String artifactId, String version) {
return groupId + ":" + artifactId + ":" + version;
}
}