blob: 915cf48f4ecbb6bcdc09ddbc7fbef86f43a503ff [file] [log] [blame]
package org.eclipse.jst.j2ee.internal.modulecore.util;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.URI;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
import org.eclipse.wst.common.componentcore.internal.DependencyType;
import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
import org.eclipse.wst.common.componentcore.resolvers.IReferenceResolver;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
/**
* This may never be used and may be a candidate for deletion, primarily
* because this reference type is not persisted in the component xml
* anywhere inside the jeetools codebase.
*/
public class ClasspathDependencyResolver implements IReferenceResolver {
public boolean canResolve(IVirtualComponent context,
ReferencedComponent referencedComponent) {
URI handle = referencedComponent.getHandle();
String s = handle.toString();
if (s.startsWith(DummyClasspathDependencyContainerVirtualComponent.COMPONENT_ID))
return true;
return false;
}
public IVirtualReference resolve(IVirtualComponent context,
ReferencedComponent referencedComponent) {
IProject p = context.getProject();
DummyClasspathDependencyContainerVirtualComponent comp = new DummyClasspathDependencyContainerVirtualComponent(
p, context);
IVirtualReference ref = ComponentCore.createReference(context, comp);
ref.setArchiveName(referencedComponent.getArchiveName());
ref.setRuntimePath(referencedComponent.getRuntimePath());
ref.setDependencyType(referencedComponent.getDependencyType()
.getValue());
return ref;
}
public boolean canResolve(IVirtualReference reference) {
IVirtualComponent vc = reference.getReferencedComponent();
if (vc instanceof DummyClasspathDependencyContainerVirtualComponent)
return true;
return false;
}
public ReferencedComponent resolve(IVirtualReference reference) {
IVirtualComponent vc = reference.getReferencedComponent();
DummyClasspathDependencyContainerVirtualComponent comp = (DummyClasspathDependencyContainerVirtualComponent)vc;
ReferencedComponent rc = ComponentcorePackage.eINSTANCE.getComponentcoreFactory().createReferencedComponent();
rc.setArchiveName(reference.getArchiveName());
rc.setRuntimePath(reference.getRuntimePath());
rc.setHandle(URI.createURI(comp.getId()));
// Manually set consumes!
rc.setDependencyType(DependencyType.CONSUMES_LITERAL);
return rc;
}
}