/******************************************************************************* * Copyright (c) 2005,2006 IBM Corporation * Licensed Material - Property of IBM. All rights reserved. * US Government Users Restricted Rights - Use, duplication or disclosure v1.0 * restricted by GSA ADP Schedule Contract with IBM Corp. * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.core.internal.bindings; import org.eclipse.core.resources.IProject; import org.eclipse.jst.j2ee.common.ResourceEnvRef; import org.eclipse.jst.j2ee.common.ResourceRef; import org.eclipse.jst.j2ee.common.SecurityRoleRef; import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive; import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; import org.eclipse.jst.j2ee.ejb.EnterpriseBean; import org.eclipse.jst.j2ee.webapplication.WebApp; /** * This is used to load jndi bindings from various J2EE artifacts. Clients should acquire * IBindingsHelper from the {@link JNDIBindingsHelperManager}. */ public interface IJNDIBindingsHelper { /** * Clients should not call this method. This method is used by the * {@link JNDIBindingsHelperManager}. * * @param project * @return true if this {@link IJNDIBindingsHelper} can be used to load bindings for specified * project. */ public boolean appliesFor(IProject project); /** * Clients should not call this method. This method is used by the * {@link JNDIBindingsHelperManager}. * * @param project * @return true if this {@link IJNDIBindingsHelper} can be used to load bindings for specified * archive. */ public boolean appliesFor(Archive archive); /** * Returns the specified bean's JNDI name. * * @param bean * @return the specified bean's JNDI name. */ public String getJNDIName(EnterpriseBean bean); /** * Returns the JNDI name for the specified CMP's default datasource. * * @param bean * @return the JNDI name for the specified CMP's default datasource. */ public String getJNDINameForDefaultDataSource(ContainerManagedEntity bean); /** * Returns the specified bean's resource reference's JNDI name. * * @param bean * @param resourceRef * @return the specified bean's resource reference's JNDI name. */ public String getJNDINameForRef(EnterpriseBean bean, ResourceRef resourceRef); /** * Returns the specified bean's resource environment reference's JNDI name. * * @param bean * @param resourceEnvRef * @return the specified bean's resource environment reference's JNDI name. */ public String getJNDINameForRef(EnterpriseBean bean, ResourceEnvRef resourceEnvRef); /** * Returns the specified bean's security role referenc's JNDI name. * * @param bean * @param securityRoleRef * @return the specified bean's security role referenc's JNDI name. */ public String getJNDINameForRef(EnterpriseBean bean, SecurityRoleRef securityRoleRef); /** * Reuturns the specified web application's resource reference's JNDI name. * * @param webApp * @param resourceRef * @return the specified web application's resource reference's JNDI name. */ public String getJNDINameForRef(WebApp webApp, ResourceRef resourceRef); /** * Returns the specified web application's resource environment reference's JNDI name. * * @param webApp * @param resourceEnvRef * @return the specified web application's resource environment reference's JNDI name. */ public String getJNDINameForRef(WebApp webApp, ResourceEnvRef resourceEnvRef); /** * Returns the specified Object's JNDI name. This method should only be used if none of the * others apply, as it will likely be inefficient due to instanceof checks. * * @param obj * @return the specified Object's JNDI name. */ public String getJNDIName(Object obj); }