001    /**
002     *
003     * Copyright 2003-2004 The Apache Software Foundation
004     *
005     *  Licensed under the Apache License, Version 2.0 (the "License");
006     *  you may not use this file except in compliance with the License.
007     *  You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     *  Unless required by applicable law or agreed to in writing, software
012     *  distributed under the License is distributed on an "AS IS" BASIS,
013     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     *  See the License for the specific language governing permissions and
015     *  limitations under the License.
016     */
017    
018    //
019    // This source code implements specifications defined by the Java
020    // Community Process. In order to remain compliant with the specification
021    // DO NOT add / change / or delete method signatures!
022    //
023    
024    package javax.enterprise.deploy.model;
025    
026    import javax.enterprise.deploy.shared.ModuleType;
027    
028    /**
029     * An interface that represents the root of a standard deployment descriptor.
030     * A DDBeanRoot is a type of DDBean.
031     *
032     * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $
033     */
034    public interface DDBeanRoot extends DDBean {
035        /**
036         * Return the ModuleType of deployment descriptor.
037         *
038         * @return The ModuleType of deployment descriptor
039         */
040        public ModuleType getType();
041    
042        /**
043         * Return the containing DeployableObject
044         *
045         * @return The DeployableObject that contains this deployment descriptor
046         */
047        public DeployableObject getDeployableObject();
048    
049        /**
050         * A convenience method to return the DTD version number. The DeployableObject has this information.
051         *
052         * Note: the method getDDBeanRootVersion() is preferred to this method.
053         * @see #getDDBeanRootVersion
054         *
055         * @return a string containing the DTD version number
056         */
057        public String getModuleDTDVersion();
058    
059        /**
060         * A convenience method to return the version number of an
061         * XML instance document.  This method is replacing the
062         * method DeployableObject.getModuleDTDVersion, because
063         * it returns the version number of any J2EE XML instance document
064         *
065         * @return <p>a string that is the version number of the XML instance document.
066         *  Null is returned if no version number can be found.</p>
067         * <p>A module's deployment descriptor file always contains
068         * a document type identifier, DOCTYPE.  The DOCTYPE statement
069         * contains the module DTD version number in the label of the
070         * statement.</p>
071         * <p>The format of the DOCTYPE statement is:</p>
072         * <pre>&lt;!DOCTYPE root_element PUBLIC "-//organization//label//language" "location"&gt;</pre>
073         * <dl>
074         *   <dt>root_element</dt><dd>is the name of the root document in the DTD.</dd>
075         *   <dt>organization</dt><dd>is the name of the organization responsible
076         * for the creation and maintenance of the DTD
077         * being referenced.</dd>
078         *   <dt>label</dt><dd>is a unique descriptive name for the public text being
079         * referenced.  </dd>
080         *   <dt>language</dt><dd>is the ISO 639 language id representing the natural
081         * language encoding of th DTD.</dd>
082         *   <dt>location</dt><dd>is the URL of the DTD.</dd>
083         * </dl>
084         * <p>An example J2EE deployment descriptor DOCTYPE statement is:</p>
085         * <pre><!DOCTYPE application-client PUBLIC
086         *                "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.3//EN"
087         *                "http://java.sun.com/dtd/application-client_1_3.dtd"></pre>
088         * <p>In this example the label is, "DTD J2EE Application Client 1.3",
089         * and the DTD version number is 1.3. A call to getModuleDTDVersion
090         * would return a string containing, "1.3".</p>
091         */
092        public String getDDBeanRootVersion();
093    
094        /**
095         * Return the XPath for this standard bean. The root XPath is "/".
096         * 
097         * @return "/" this is the root standard bean.
098         */
099        public String getXpath();
100    
101        /**
102         * Returns the filename relative to the root of the module of the XML instance document this
103         * DDBeanRoot represents.
104         *
105         * @since 1.1
106         *
107         *  @return String the filename relative to the root of the module
108         */
109        public String getFilename();
110    }