KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openejb > alt > assembler > classic > xml > ContainerSystem


1 /**
2  * Redistribution and use of this software and associated documentation
3  * ("Software"), with or without modification, are permitted provided
4  * that the following conditions are met:
5  *
6  * 1. Redistributions of source code must retain copyright
7  * statements and notices. Redistributions must also contain a
8  * copy of this document.
9  *
10  * 2. Redistributions in binary form must reproduce the
11  * above copyright notice, this list of conditions and the
12  * following disclaimer in the documentation and/or other
13  * materials provided with the distribution.
14  *
15  * 3. The name "Exolab" must not be used to endorse or promote
16  * products derived from this Software without prior written
17  * permission of Exoffice Technologies. For written permission,
18  * please contact info@exolab.org.
19  *
20  * 4. Products derived from this Software may not be called "Exolab"
21  * nor may "Exolab" appear in their names without prior written
22  * permission of Exoffice Technologies. Exolab is a registered
23  * trademark of Exoffice Technologies.
24  *
25  * 5. Due credit should be given to the Exolab Project
26  * (http://www.exolab.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
29  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39  * OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
42  *
43  * $Id: ContainerSystem.java 1921 2005-06-19 22:40:34Z jlaskowski $
44  */

45
46 package org.openejb.alt.assembler.classic.xml;
47
48 import org.openejb.OpenEJBException;
49 import org.openejb.alt.assembler.classic.ContainerInfo;
50 import org.openejb.alt.assembler.classic.ContainerSystemInfo;
51 import org.w3c.dom.Node JavaDoc;
52
53 /**
54  * A subclass of ContainerSystemInfo filled with data from an XML file.
55  *
56  * Populates the member variables of ContainerSystemInfo in this classes initializeFromDOM method.
57  *
58  * @author <a HREF="mailto:david.blevins@visi.com">David Blevins</a>
59  * @author <a HREF="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
60  * @see org.openejb.alt.assembler.classic.ContainerSystemInfo
61  */

62 public class ContainerSystem extends ContainerSystemInfo implements DomObject{
63
64
65     /**
66      * Represents the <tt>containers</tt> element in the XML config file.
67      */

68     public static final String JavaDoc CONTAINERS = "containers";
69
70     /**
71      * Represents the <tt>entity-container</tt> element in the XML config file.
72      */

73     public static final String JavaDoc ENTITY_CONTAINER = "entity-container";
74
75     /**
76      * Represents the <tt>cmp-entity-container</tt> element in the XML config file.
77      */

78     public static final String JavaDoc CMP_ENTITY_CONTAINER = "cmp-entity-container";
79
80     /**
81      * Represents the <tt>stateful-session-container</tt> element in the XML config file.
82      */

83     public static final String JavaDoc STATEFUL_SESSION_CONTAINER = "stateful-session-container";
84     
85     /**
86      * Represents the <tt>stateless-session-container</tt> element in the XML config file.
87      */

88     public static final String JavaDoc STATELESS_SESSION_CONTAINER = "stateless-session-container";
89
90
91     /**
92      * Represents the <tt>security-role</tt> element in the XML config file.
93      */

94     public static final String JavaDoc SECURITY_ROLE = "security-role";
95
96     /**
97      * Represents the <tt>method-permission</tt> element in the XML config file.
98      */

99     public static final String JavaDoc METHOD_PERMISSION = "method-permission";
100
101     /**
102      * Represents the <tt>method-transaction</tt> element in the XML config file.
103      */

104     public static final String JavaDoc METHOD_TRANSACTION = "method-transaction";
105
106     /**
107      * Parses out the values needed by this InfoObject from the DOM Node passed in.
108      */

109     public void initializeFromDOM(Node JavaDoc node) throws OpenEJBException{
110         
111         Node JavaDoc containersElement = DomTools.getChildElement(node, CONTAINERS);
112
113         /* EntityContainer */
114         DomObject[] dos = DomTools.collectChildElementsByType(containersElement, EntityContainer.class, ENTITY_CONTAINER);
115         entityContainers = new EntityContainer[dos.length];
116         for (int i=0; i < dos.length; i++) entityContainers[i] = (EntityContainer)dos[i];
117
118         /* StatelessSessionContainer */
119         dos = DomTools.collectChildElementsByType(containersElement, StatelessSessionContainer.class, STATELESS_SESSION_CONTAINER);
120         statelessContainers = new StatelessSessionContainer[dos.length];
121         for (int i=0; i < dos.length; i++) statelessContainers[i] = (StatelessSessionContainer)dos[i];
122
123         /* StatefulSessionContainer */
124         dos = DomTools.collectChildElementsByType(containersElement, StatefulSessionContainer.class, STATEFUL_SESSION_CONTAINER);
125         statefulContainers = new StatefulSessionContainer[dos.length];
126         for (int i=0; i < dos.length; i++) statefulContainers[i] = (StatefulSessionContainer)dos[i];
127
128         int x=0;
129         containers = new ContainerInfo[entityContainers.length +
130                                        statelessContainers.length +
131                                        statefulContainers.length];
132
133         System.arraycopy(entityContainers , 0, containers, x ,entityContainers.length);
134         
135         System.arraycopy(statelessContainers, 0, containers, x += entityContainers.length ,statelessContainers.length);
136         System.arraycopy(statefulContainers , 0, containers, x += statelessContainers.length ,statefulContainers.length);
137         
138         
139         dos = DomTools.collectChildElementsByType(node, SecurityRole.class, SECURITY_ROLE);
140         securityRoles = new SecurityRole[dos.length];
141         for (int i=0; i < dos.length; i++) securityRoles[i] = (SecurityRole)dos[i];
142
143         dos = DomTools.collectChildElementsByType(node, MethodPermission.class, METHOD_PERMISSION);
144         methodPermissions = new MethodPermission[dos.length];
145         for (int i=0; i < dos.length; i++) methodPermissions[i] = (MethodPermission)dos[i];
146  
147         dos = DomTools.collectChildElementsByType(node, MethodTransaction.class, METHOD_TRANSACTION);
148         methodTransactions = new MethodTransaction[dos.length];
149         for (int i=0; i < dos.length; i++) methodTransactions[i] = (MethodTransaction)dos[i];
150     }
151
152
153     public void serializeToDOM(Node JavaDoc node) throws OpenEJBException{}
154 }
155
156
Popular Tags