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 * J2eeApplicationObject is an interface that represents a J2EE application (EAR);
030 * it maintains a DeployableObject for each module in the archive.
031 *
032 * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $
033 */
034 public interface J2eeApplicationObject extends DeployableObject {
035 /**
036 * Return the DeployableObject of the specified URI designator.
037 *
038 * @param uri Describes where to get the module from.
039 *
040 * @return the DeployableObject describing the j2ee module at this uri
041 * or <code>null</code> if there is not match.
042 */
043 public DeployableObject getDeployableObject(String uri);
044
045 /**
046 * Return the all DeployableObjects of the specified type.
047 *
048 * @param type The type of module to return.
049 *
050 * @return the list of DeployableObjects describing the j2ee modules of
051 * this type or <code>null</code> if there are no matches.
052 */
053 public DeployableObject[] getDeployableObjects(ModuleType type);
054
055 /**
056 * Return the all DeployableObjects in this application.
057 *
058 * @return the DeployableObject instances describing the j2ee modules in
059 * this application or <code>null</code> if there are none available.
060 */
061 public DeployableObject[] getDeployableObjects();
062
063 /**
064 * Return the list of URIs of the designated module type.
065 *
066 * @param type The type of module to return.
067 *
068 * @return the Uris of the contained modules or <code>null</code> if there
069 * are no matches.
070 */
071 public String[] getModuleUris(ModuleType type);
072
073 /**
074 * Return the list of URIs for all modules in the application.
075 *
076 * @return the Uris of the contained modules or <code>null</code> if
077 * the application is completely empty.
078 */
079 public String[] getModuleUris();
080
081 /**
082 * Return a list of DDBean instances based upon an XPath; all deployment
083 * descriptors of the specified type are searched.
084 *
085 * @param type The type of deployment descriptor to query.
086 * @param xpath An XPath string referring to a location in the deployment descriptor
087 *
088 * @return The list of DDBeans or <code>null</code> if there are no matches.
089 */
090 public DDBean[] getChildBean(ModuleType type, String xpath);
091
092 /**
093 * Return the text value from the XPath; search only the deployment descriptors
094 * of the specified type.
095 *
096 * @param type The type of deployment descriptor to query.
097 * @param xpath The xpath to query for.
098 *
099 * @return The text values of this xpath or <code>null</code> if there are no matches.
100 */
101 public String[] getText(ModuleType type, String xpath);
102
103 /**
104 * Register a listener for changes in XPath that are related to this deployableObject.
105 *
106 * @param type The type of deployment descriptor to query.
107 * @param xpath The xpath to listen for.
108 * @param xpl The listener.
109 */
110 public void addXpathListener(ModuleType type, String xpath, XpathListener xpl);
111
112 /**
113 * Unregister the listener for an XPath.
114 * @param type The type of deployment descriptor to query.
115 * @param xpath The xpath to listen for.
116 * @param xpl The listener.
117 */
118 public void removeXpathListener(ModuleType type, String xpath, XpathListener xpl);
119 }