blob: 20c7545d5224a9e9e0cc1812d7ac78ceca897393 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2004 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.j2ee.commonarchivecore.internal;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jst.j2ee.application.Application;
import org.eclipse.jst.j2ee.application.ConnectorModule;
import org.eclipse.jst.j2ee.application.EjbModule;
import org.eclipse.jst.j2ee.application.JavaClientModule;
import org.eclipse.jst.j2ee.application.Module;
import org.eclipse.jst.j2ee.application.WebModule;
import org.eclipse.jst.j2ee.client.ApplicationClient;
import org.eclipse.jst.j2ee.common.EjbRef;
import org.eclipse.jst.j2ee.common.SecurityRole;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.EmptyResourceException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ObjectNotFoundException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException;
import org.eclipse.jst.j2ee.ejb.EJBJar;
import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
import org.eclipse.jst.j2ee.jca.Connector;
import org.eclipse.jst.j2ee.webapplication.WebApp;
/**
* @generated
*/
public interface EARFile extends ModuleFile {
/**
* Makes a copy of
*
* @aModuleFile, using its local deployment descriptor; creates a new Module and adds it to the
* Application deployment descriptor of this EAR file and adds the copy of the
* ModuleFile to this EAR.
*
* @return The copied module file
*
* @exception DuplicateObjectException
* if this EAR already contains a file with the same uri as
* @aModuleFile
*/
public ModuleFile addCopy(ModuleFile aModuleFile) throws DuplicateObjectException;
/**
* This is the same as addCopy(ModuleFile) except the return value is the new ModuleRef
*/
public ModuleRef addCopyRef(ModuleFile aModuleFile) throws DuplicateObjectException;
/**
* Add a copy of the security role to the dd for the module; if an alt dd is specified, add to
* that dd; otherwise add to the standard dd of the module; also add a copy of the role to the
* ear file dd if a role with that name does not already exist
*
* @throws DuplicateObjectException
* if the dd for aModule already contains a role with that name
*/
public SecurityRole addCopy(SecurityRole aRole, Module aModule) throws DuplicateObjectException;
/**
* Add a copy of the security role to the ear file's dd, if it does not already contain a role
* with the same name
*/
public SecurityRole addCopyIfNotExists(SecurityRole aRole);
EObject getAltDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
/**
* Returns a filtered list of ApplicationClientFiles; adds will not be reflected; use
*
* @link Archive#add(File)
*/
public List getApplicationClientFiles();
/**
* Returns a filtered list of ClientModuleRefs
*/
public List getClientModuleRefs();
/**
* @throws DeploymentDescriptorLoadException -
* is a runtime exception, because we can't override the signature of the generated
* methods
*/
/**
* @generated This field/method will be replaced during code generation
* @return The DeploymentDescriptor reference
*/
Application getDeploymentDescriptor() throws DeploymentDescriptorLoadException;
Connector getDeploymentDescriptor(ConnectorModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
EJBJar getDeploymentDescriptor(EjbModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
ApplicationClient getDeploymentDescriptor(JavaClientModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
EObject getDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
WebApp getDeploymentDescriptor(WebModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
/**
* Returns a filtered list of EJBJarFiles; adds will not be reflected; use
*
* @link Archive#add(File)
*/
public List getEJBJarFiles();
/**
* Returns a filtered list of EJBModuleRefs
*/
public List getEJBModuleRefs();
/**
* Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value of the
* ref must equate to a named enterprise bean contained in the jar; otherwise return null.
* Returns the first hit found; assumption that the ejb names are unique within the scope of the
* ear file. This will likely be replaced with a better way for dereferencing ejb refs.
*
* Can be used with ejb 1.1 references only.
*
* @deprecated {@link#getEnterpiseBeanFromRef(EjbRef ref, String moduleUri )
* @param EjbRef
* ref - An ejb reference
* @return EnterpriseBean
*/
public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref);
/**
* Return an enterprise bean referenced by the EjbRef and a module uri, if one exists. The
* ejb-link value of the ref must equate to a named enterprise bean contained in the jar;
* otherwise return null. Returns the first hit found; assumption that the ejb names are unique
* within the scope of the ear file. This will likely be replaced with a better way for
* dereferencing ejb refs.
*
* Can be used with ejb 1.1 & ejb 2.0 references.
*
* @param EjbRef
* ref - An ejb reference
* @param String
* moduleUri - The module uri
* @return EnterpriseBean
*/
public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref, String moduleUri);
public Module getModule(String uri, String altDD);
/**
* @return the module ref which references
* @moduleDescriptor
*/
public ModuleRef getModuleRef(Module moduleDescriptor);
/**
* @return java.util.List of all module refs in this EAR having a reference to
* @aModuleFile
*/
public List getModuleRefs(ModuleFile aModuleFile);
/**
* Returns a filtered list of ModuleFiles; adds will not be reflected; use
*
* @link Archive#add(File)
*/
public List getModuleFiles();
/**
* Returns a filtered list of RarFiles; adds will not be reflected; use
*
* @link Archive#add(File)
*/
public List getRARFiles();
/**
* Returns a filtered list of FARFiles; adds will not be reflected; use
* {@link Archive#add(File)}
*/
public List getFARFiles();
/**
* Returns a filtered list of ConnectorModuleRefs
*/
public List getConnectorModuleRefs();
/**
* Return all security roles from all existing modules (EjbModule and WebModule)
*/
public EList getRolesFromAllModules();
/**
* Return all security roles from an existing module (EjbModule and WebModule)
*/
public EList getRolesFromModule(Module aModule);
/**
* Returns a filtered list of WarFiles; adds will not be reflected; use
*
* @link Archive#add(File)
*/
public List getWARFiles();
/**
* Returns a filtered list of WebModuleRefs
*/
public List getWebModuleRefs();
/**
* Copy the role into each ModuleFile in the ear file which does not already contain the role
* Assumption: a role with the same name as
*
* @role exists in the application deployment descriptor
*/
public void pushDownRole(SecurityRole role);
/**
* Copy the role into the ModuleFile for the module, if the module does not already contain the
* role Assumption: a role with the same name as
*
* @role exists in the application deployment descriptor
*/
public void pushDownRole(SecurityRole role, Module aModule);
/**
* Attempt to remove the module for the parameter from this object's dd, then remove the module
* file, if it is not referenced from any other ModuleRef, from the list of files
*/
public void remove(ModuleRef aModuleRef);
/**
* Rename the security role in the ear file's dd; push this change down to any contained module
* dd's; if the module specifies an alt-dd, the change will be reflected there; otherwise it
* will be reflected in the standard dd of the module
*
* @throws ObjectNotFoundException
* if the dd for the ear does not contain a role with the existingRoleName
*
* @throws DuplicateObjectException
* if the dd for the ear file already contains a role with the new name
*/
public void renameSecurityRole(String existingRoleName, String newRoleName) throws ObjectNotFoundException, DuplicateObjectException;
/**
* For each security role in the dd for each module, add a copy to the ear file's dd; if an
* alt-dd is specified for the module, use that dd; otherwise use the standard dd in the module
* file
*/
public void rollUpRoles();
/**
* For each security role in the dd for a module, add a copy to the ear file's dd; if an alt-dd
* is specified for the module, use that dd; otherwise use the standard dd in the module file
*/
public void rollUpRoles(Module aModule);
/**
* @generated This field/method will be replaced during code generation
* @param l
* The new value of the DeploymentDescriptor reference
*/
void setDeploymentDescriptor(Application value);
/**
* @generated This field/method will be replaced during code generation
* @return The list of ModuleRefs references
*/
EList getModuleRefs();
public List getArchivesOfType(String type);
/**
* Return a Map of Modules as keys and a List of EJB References as the values. This will let you
* know which Modules the references came from. You can filter the list of EJB References
* returned on the linked attributed of the reference. This means that you can filter linked
* references, non-linked references, or neither (i.e., return all references).
*/
Map getEJBReferences(boolean filterLinkedReferences, boolean filterNonLinkedReferences) throws ArchiveWrappedException;
}