package org.objectstyle.wolips.launching.classpath; import java.util.HashSet; import java.util.Set; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IPath; import org.eclipse.jdt.launching.IRuntimeClasspathEntry; import org.eclipse.jdt.launching.JavaRuntime; import org.objectstyle.woenvironment.frameworks.DependencyOrdering; import org.objectstyle.wolips.jdt.classpath.model.EclipseDependency; public class EclipseDependencyOrdering extends DependencyOrdering<EclipseDependency> { private Set<IPath> _allProjectArchiveEntries; private IProject _project; public EclipseDependencyOrdering(IProject project, boolean includeProjectDependency) { super(includeProjectDependency); _project = project; } protected void initialize() { super.initialize(); _allProjectArchiveEntries = new HashSet<IPath>(); } protected void addWOProject(EclipseDependency dependency) { IPath projectArchive = dependency.getWOJavaArchive(); if (!_allProjectArchiveEntries.contains(projectArchive)) { pendingResult.add(dependency); IRuntimeClasspathEntry resolvedEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(projectArchive); pendingResult.add(new EclipseDependency(_project, resolvedEntry)); _allProjectArchiveEntries.add(projectArchive); } } }