blob: 067b4795bb5189fd94ccef7f4fb6ae36d149b12e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jee.internal.deployables;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.j2ee.internal.deployables.J2EEDeployableFactory;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.model.ModuleDelegate;
import org.eclipse.wst.web.internal.deployables.FlatComponentDeployable;
/**
* J2EE module factory.
*/
public class JEEDeployableFactory extends J2EEDeployableFactory {
protected Map <IModule, ModuleDelegate> moduleDelegates = new HashMap<IModule, ModuleDelegate>(5);
public static final String JEE_ID = "org.eclipse.jst.jee.server"; //$NON-NLS-1$
public static JEEDeployableFactory JEE_INSTANCE;
public static JEEDeployableFactory jeeInstance() {
if( JEE_INSTANCE == null ) {
ensureFactoryLoaded(JEE_ID);
}
return JEE_INSTANCE;
}
public JEEDeployableFactory() {
super();
}
@Override
public void initialize() {
super.initialize();
if( getId().equals(JEE_ID))
JEE_INSTANCE = this;
}
@Override
protected FlatComponentDeployable createModuleDelegate(IProject project, IVirtualComponent component) {
return new JEEFlexProjDeployable(project, component);
}
@Override
protected boolean canHandleProject(IProject p) {
// First check the component is of type Java EE, then check J2EE version
IVirtualComponent comp = ComponentCore.createComponent(p);
return (JavaEEProjectUtilities.usesJavaEEComponent(comp) && J2EEProjectUtilities.isJEEProject(p));
}
@Override
protected FlatComponentDeployable getNestedDelegate(IVirtualComponent component) {
return new JEEFlexProjDeployable(component.getProject(), component);
}
}