blob: 5ee9ae569c65519b2d91042bf8ca24712d985e57 [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
* https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jee.internal.deployables;
import java.util.Iterator;
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.j2ee.internal.EjbModuleExtensionHelper;
import org.eclipse.jst.j2ee.internal.IEJBModelExtenderManager;
import org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable;
import org.eclipse.jst.j2ee.model.IModelProvider;
import org.eclipse.jst.j2ee.model.ModelProviderManager;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
import org.eclipse.jst.javaee.ejb.EJBJar;
import org.eclipse.jst.javaee.ejb.EnterpriseBeans;
import org.eclipse.jst.javaee.ejb.SessionBean;
import org.eclipse.wst.common.componentcore.internal.flat.IChildModuleReference;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.server.core.IModule;
/**
* JEE module superclass.
*/
public class JEEFlexProjDeployable extends J2EEFlexProjDeployable {
/**
* Constructor for JEEFlexProjDeployable.
*
* @param project
* @param aComponent
*/
public JEEFlexProjDeployable(IProject project, IVirtualComponent aComponent) {
super(project, aComponent);
}
/**
* Constructor for JEEFlexProjDeployable.
*
* @param project
*/
public JEEFlexProjDeployable(IProject project) {
super(project);
}
@Override
protected IModule gatherModuleReference(IVirtualComponent component, IChildModuleReference child ) {
if (!child.isBinary())
return super.gatherModuleReference(component, child);
return JEEDeployableFactory.jeeInstance().createChildModule(this, child);
}
/*_________________________________
*
* Methods for specific J2EE / JEE Interfaces are below
*_________________________________
*/
public String getJNDIName(String ejbName, String interfaceName) {
if (!JavaEEProjectUtilities.isEJBProject(component.getProject()))
return null;
EjbModuleExtensionHelper modHelper = null;
EJBJar jar = null;
IModelProvider model = ModelProviderManager.getModelProvider(component.getProject());
if (model != null) {
jar = (EJBJar) model.getModelObject();
SessionBean bean = getSessionBeanNamed(jar, ejbName);
modHelper = IEJBModelExtenderManager.INSTANCE.getEJBModuleExtension(null);
return modHelper == null ? null : modHelper.getJavaEEJNDIName(jar, bean, interfaceName);
}
return null;
}
/**
* Return List of Session beans in this jar.
* @return java.util.List
*/
public SessionBean getSessionBeanNamed(EJBJar jar, String beanName) {
EnterpriseBeans allBeans = jar.getEnterpriseBeans();
for (Iterator iterator = allBeans.getSessionBeans().iterator(); iterator.hasNext();) {
SessionBean bean = (SessionBean) iterator.next();
if (bean.getEjbName().equals(beanName))
return bean;
}
return null;
}
}