blob: fc9d0fb9ae0561bf120f099aec4b5e8671e7c057 [file] [log] [blame]
/**
*
* Copyright 2003-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
// This source code implements specifications defined by the Java
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
package javax.enterprise.deploy.model;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Enumeration;
import javax.enterprise.deploy.model.exceptions.DDBeanCreateException;
import javax.enterprise.deploy.shared.ModuleType;
/**
* The DeployableObject interface is an abstract representation of a J2EE deployable
* module (JAR, WAR, RAR, EAR). A DeployableObject provides access to the module's
* deployment descriptor and class files.
*
* @version $Rev$ $Date$
*/
public interface DeployableObject {
/**
* Return the ModuleType of deployment descriptor (i.e., EAR, JAR, WAR, RAR)
* this deployable object represents. Values are found in DeploymentManager.
*
* @return The ModuleType of deployable object
*/
public ModuleType getType();
/**
* Return the top level standard bean representing the root of the deployment descriptor.
*
* @return A standard bean representing the deployment descriptor.
*/
public DDBeanRoot getDDBeanRoot();
/**
* Return an array of standard beans representing the XML content returned based upon the XPath.
*
* @param xpath AAn XPath string identifying the data to be extracted from the deployment descriptor.
*
* @return an array of DDBeans or <code>null</code> if no matching data is found.
*/
public DDBean[] getChildBean(String xpath);
/**
*
* @param xpath An xpath string referring to a location in the deployment descriptor
*
* @return a list XML content or <code>null</code> if no matching data is found.
*/
public String[] getText(String xpath);
/**
* Retrieve the specified class from this deployable module.
* <p>One use: to get all finder methods from an EJB. If the tool is attempting to package a
* module and retrieve a class from the package, the class request may fail. The class may
* not yet be available. The tool should respect the manifest Class-Path entries.</p>
*
* @param className Class to retrieve.
*
* @return Class representation of the class
*/
public Class getClassFromScope(String className);
/**
* A convenience method to return the deployment descriptor
* document version number of the primary deployment descriptor
* for the module (e.g. web.xml, ejb-jar.xml, ra.xml, application.xml,
* and application-client.xml.) The version number for documents
* webservices.xml , webservicesclient.xml and the like are not returned
* by this method. DDBeanRoot.getDDBeanRootVersion should be used
* instead.
*
* This method is being deprecated. DDBeanRoot.getDDBeanRootVersion
* should be used instead.
*
* @deprecated As of version 1.1, replace by DDBeanRoot.getDDBeanRootVersion()
*
* @return a string that is the version number of the XML instance document.
* Null is returned if no version number can be found.
*/
public String getModuleDTDVersion();
/**
* Returns a DDBeanRoot object for the XML instance document named.
* This method should be used to return DDBeanRoot objects for non deployment
* descriptor XML instance documents such as WSDL files.
*
* @since 1.1
*
* @param filename the full path name from the root of the module of the xml
* instance document for which a DDBeanRoot object is to be returned.
*
* @return a DDBeanRoot object for the XML data.
*
* @throws java.io.FileNotFoundException if the named file can not be found
* @throws javax.enterprise.deploy.model.exceptions.DDBeanCreateException
* if an error is encountered creating the DDBeanRoot object.
*/
public DDBeanRoot getDDBeanRoot(String filename) throws FileNotFoundException, DDBeanCreateException;
/**
* Returns an enumeration of the module file entries. All elements in the
* enumeration are of type String. Each String represents a file name relative
* to the root of the module.
*
* @since 1.1
*
* @return an enumeration of the archive file entries.
*/
public Enumeration entries();
/**
* Returns the InputStream for the given entry name.
* The file name must be relative to the root of the module.
*
* @since 1.1
*
* @param name the file name relative to the root of the module.
*
* @return the InputStream for the given entry name or null if not found.
*/
public InputStream getEntry(String name);
}