/******************************************************************************* * Copyright (c) 2001, 2006 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.io.IOException; import java.io.InputStream; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jst.j2ee.application.Module; import org.eclipse.jst.j2ee.common.J2EEEObject; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException; import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy; /** * @generated */ public interface ModuleRef extends J2EEEObject { /** * Return the parsed local deployment descriptor from the ModuleFile */ EObject getStandardDeploymentDescriptor(); /** * Return the parsed alt dd, if it exists, from the EAR file containing this module */ EObject getAltDeploymentDescriptor() throws ArchiveWrappedException; /** * Return an alt dd if it exists, otherwise the local dd */ EObject getDeploymentDescriptor() throws ArchiveWrappedException; /** * Gets the uri from the {@link Module}referenced by this ref; if there is no module, (eg. a * standalone JAR), gets the uri from the {@link ModuleFile}. Assumption: The uri of the * {@link Module}and {@link ModuleFile}should stay in sync */ String getUri(); /** * @generated This field/method will be replaced during code generation * @return The ModuleFile reference */ ModuleFile getModuleFile(); /** * Similar to {@link Archive#getMofResource(String)}, except that alt-dd indirection is * considered. If this module uses an alt-dd, then the uri will be prepended with the "alt-root" * and the resource will be loaded from the owning EAR file. In this case, all hrefs into and * out of this resource should be relative to the root of the EAR. The hrefs are taken care of * for free when the client uses {@link #makeAltDescriptorsAndResources()}. The alt root is * automatically generated when it does not exist. * * @see ModuleExtension#getAltRoot() */ Resource getMofResource(String uri) throws FileNotFoundException, ResourceLoadException; public InputStream getAltResourceInputStream(String uri) throws IOException; public InputStream getLocalResourceInputStream(String uri) throws IOException; /** * Return an input stream from the resources path of either the ModuleFile, if the module does * not use alt-dd, or from the altRoot of the module, found in the resources path of the EAR * * @see LoadStrategy#getResourceInputStream(String) */ public InputStream getResourceInputStream(String uri) throws IOException; /** * Retrieve a resource from the ModuleFile * * @see Archive#getMofResource(String) */ Resource getLocalMofResource(String uri) throws FileNotFoundException, ResourceLoadException; /** * The uri will be prepended with the "alt-root" and the resource will be loaded from the owning * EAR file. */ Resource getAltMofResource(String uri) throws FileNotFoundException, ResourceLoadException; /** * Create a new mof resource and add it to the resource set of the context of either the module * file if this ModuleRef is not an alt, or to the EAR file if it is an alt. If this module is * uses an alt-dd, then the uri will be prepended with the "alt-root" The alt root is * automatically generated when it does not exist. * * @throws DuplicateObjectException * if a resource already exists in this archive having the uri */ Resource makeMofResource(String uri) throws DuplicateObjectException; Resource makeLocalMofResource(String uri) throws DuplicateObjectException; Resource makeAltMofResource(String uri) throws DuplicateObjectException; /** * @generated This field/method will be replaced during code generation * @param l * The new value of the ModuleFile reference */ void setModuleFile(ModuleFile value); /** * Rename this module; both its ModuleFile and Module element from the Application deployment * descriptor. */ public void setURI(String uri); boolean isEJB(); boolean isWeb(); boolean isClient(); boolean isConnector(); boolean usesAltDD(); /** * @generated This field/method will be replaced during code generation * @return The EarFile reference */ EARFile getEarFile(); /** * @generated This field/method will be replaced during code generation * @param l * The new value of the EarFile reference */ void setEarFile(EARFile value); /** * Returns the value of the '<em><b>Module</b></em>' reference. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Module</em>' reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Module</em>' reference. * @see #setModule(Module) * @see org.eclipse.jst.j2ee.commonarchivecore.CommonarchivePackage#getModuleRef_Module() * @model required="true" * @generated */ Module getModule(); /** * Sets the value of the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef#getModule <em>Module</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Module</em>' reference. * @see #getModule() * @generated */ void setModule(Module value); } //ModuleRef