blob: 4decb5ee2b72494c6f193e453946c94a27383a54 [file] [log] [blame]
package org.eclipse.jst.j2ee.internal.project;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jst.common.componentcore.util.ComponentUtilities;
import org.eclipse.jst.j2ee.application.Application;
import org.eclipse.jst.j2ee.application.Module;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl;
import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit;
import org.eclipse.jst.j2ee.internal.archive.operations.JavaComponentLoadStrategyImpl;
import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
public class J2EEComponentUtilities extends ComponentUtilities {
public J2EEComponentUtilities() {
super();
}
public static IVirtualComponent[] getReferencingEARComponents(IVirtualComponent component) {
List result = new ArrayList();
IVirtualComponent[] refComponents = component.getReferencingComponents();
for (int i=0; i<refComponents.length; i++) {
if (refComponents[i].getComponentTypeId().equals(IModuleConstants.JST_EAR_MODULE))
result.add(refComponents[i]);
}
return (IVirtualComponent[]) result.toArray(new IVirtualComponent[result.size()]);
}
public static boolean isStandaloneComponent(IVirtualComponent component) {
if (getReferencingEARComponents(component).length>0)
return false;
return true;
}
public static IVirtualComponent getJ2EEComponentForEAR(Application application, Module module) {
IVirtualComponent earComponent = ComponentUtilities.findComponent(application);
EARArtifactEdit edit = null;
try {
edit = EARArtifactEdit.getEARArtifactEditForWrite(earComponent);
IVirtualReference[] refs = edit.getJ2EEModuleReferences();
for(int i = 0; i < refs.length; i++) {
if(refs[i].getReferencedComponent().getName().equals(module.getUri()))
return refs[i].getReferencedComponent();
}
} finally {
if(edit != null) {
edit.dispose();
}
}
return null;
}
public static Archive asArchive(String jarUri, IVirtualComponent component, boolean exportSource) throws OpenFailureException {
JavaComponentLoadStrategyImpl strat = new JavaComponentLoadStrategyImpl(component);
strat.setExportSource(exportSource);
return CommonarchiveFactoryImpl.getActiveFactory().primOpenArchive(strat, jarUri);
}
public static boolean isWebComponent(IVirtualComponent component) {
return component.getComponentTypeId().equals(IModuleConstants.JST_WEB_MODULE);
}
public static boolean isEARComponent(IVirtualComponent component) {
return component.getComponentTypeId().equals(IModuleConstants.JST_EAR_MODULE);
}
public static boolean isStandaloneWebComponent(IVirtualComponent component) {
return (component.getComponentTypeId().equals(IModuleConstants.JST_WEB_MODULE) && isStandaloneComponent(component));
}
}