1+ /**
2+ * Provides classes and predicates for working with
3+ * EJB deployment descriptor XML files (`ejb-jar.xml`).
4+ */
5+
16import java
27
38/**
@@ -6,168 +11,230 @@ import java
611class EjbJarXMLFile extends XMLFile {
712 EjbJarXMLFile ( ) { this .getStem ( ) = "ejb-jar" }
813
14+ /** Gets the root `ejb-jar` XML element of this `ejb-jar.xml` file. */
915 EjbJarRootElement getRoot ( ) { result = this .getAChild ( ) }
1016
11- // Convenience methods.
17+ /** Gets an `enterprise-beans` XML element nested within this `ejb-jar.xml` file. */
1218 EjbJarEnterpriseBeansElement getAnEnterpriseBeansElement ( ) {
1319 result = this .getRoot ( ) .getAnEnterpriseBeansElement ( )
1420 }
1521
22+ /** Gets a `session` XML element nested within this `ejb-jar.xml` file. */
1623 EjbJarSessionElement getASessionElement ( ) {
1724 result = this .getAnEnterpriseBeansElement ( ) .getASessionElement ( )
1825 }
1926
27+ /** Gets a `message-driven` XML element nested within this `ejb-jar.xml` file. */
2028 EjbJarMessageDrivenElement getAMessageDrivenElement ( ) {
2129 result = this .getAnEnterpriseBeansElement ( ) .getAMessageDrivenElement ( )
2230 }
2331
32+ /** Gets an `entity` XML element nested within this `ejb-jar.xml` file. */
2433 EjbJarEntityElement getAnEntityElement ( ) {
2534 result = this .getAnEnterpriseBeansElement ( ) .getAnEntityElement ( )
2635 }
2736}
2837
38+ /** The root `ejb-jar` XML element in an `ejb-jar.xml` file. */
2939class EjbJarRootElement extends XMLElement {
3040 EjbJarRootElement ( ) {
3141 this .getParent ( ) instanceof EjbJarXMLFile and
3242 this .getName ( ) = "ejb-jar"
3343 }
3444
45+ /** Gets an `enterprise-beans` child XML element of this root `ejb-jar` XML element. */
3546 EjbJarEnterpriseBeansElement getAnEnterpriseBeansElement ( ) { result = this .getAChild ( ) }
3647}
3748
49+ /**
50+ * An `enterprise-beans` child XML element of the root
51+ * `ejb-jar` XML element in an `ejb-jar.xml` file.
52+ */
3853class EjbJarEnterpriseBeansElement extends XMLElement {
3954 EjbJarEnterpriseBeansElement ( ) {
4055 this .getParent ( ) instanceof EjbJarRootElement and
4156 this .getName ( ) = "enterprise-beans"
4257 }
4358
59+ /** Gets a `session` child XML element of this `enterprise-beans` XML element. */
4460 EjbJarSessionElement getASessionElement ( ) {
4561 result = this .getAChild ( ) and
4662 result .getName ( ) = "session"
4763 }
4864
65+ /** Gets a `message-driven` child XML element of this `enterprise-beans` XML element. */
4966 EjbJarMessageDrivenElement getAMessageDrivenElement ( ) {
5067 result = this .getAChild ( ) and
5168 result .getName ( ) = "message-driven"
5269 }
5370
71+ /** Gets an `entity` child XML element of this `enterprise-beans` XML element. */
5472 EjbJarEntityElement getAnEntityElement ( ) {
5573 result = this .getAChild ( ) and
5674 result .getName ( ) = "entity"
5775 }
5876}
5977
78+ /**
79+ * A child XML element of an `enterprise-beans` XML element within an `ejb-jar.xml` file.
80+ *
81+ * This is either a `message-driven` element, a `session` element, or an `entity` element.
82+ */
6083abstract class EjbJarBeanTypeElement extends XMLElement {
6184 EjbJarBeanTypeElement ( ) { this .getParent ( ) instanceof EjbJarEnterpriseBeansElement }
6285
86+ /** Gets an `ejb-class` child XML element of this bean type element. */
6387 XMLElement getAnEjbClassElement ( ) {
6488 result = this .getAChild ( ) and
6589 result .getName ( ) = "ejb-class"
6690 }
6791}
6892
93+ /**
94+ * A `session` child XML element of a bean type element in an `ejb-jar.xml` file.
95+ */
6996class EjbJarSessionElement extends EjbJarBeanTypeElement {
7097 EjbJarSessionElement ( ) { this .getName ( ) = "session" }
7198
99+ /** Gets a `business-local` child XML element of this `session` XML element. */
72100 XMLElement getABusinessLocalElement ( ) {
73101 result = this .getAChild ( ) and
74102 result .getName ( ) = "business-local"
75103 }
76104
105+ /** Gets a `business-remote` child XML element of this `session` XML element. */
77106 XMLElement getABusinessRemoteElement ( ) {
78107 result = this .getAChild ( ) and
79108 result .getName ( ) = "business-remote"
80109 }
81110
111+ /**
112+ * Gets a business child XML element of this `session` XML element.
113+ *
114+ * This is either a `business-local` or `business-remote` element.
115+ */
82116 XMLElement getABusinessElement ( ) {
83117 result = getABusinessLocalElement ( ) or
84118 result = getABusinessRemoteElement ( )
85119 }
86120
121+ /** Gets a `remote` child XML element of this `session` XML element. */
87122 XMLElement getARemoteElement ( ) {
88123 result = this .getAChild ( ) and
89124 result .getName ( ) = "remote"
90125 }
91126
127+ /** Gets a `home` child XML element of this `session` XML element. */
92128 XMLElement getARemoteHomeElement ( ) {
93129 result = this .getAChild ( ) and
94130 result .getName ( ) = "home"
95131 }
96132
133+ /** Gets a `local` child XML element of this `session` XML element. */
97134 XMLElement getALocalElement ( ) {
98135 result = this .getAChild ( ) and
99136 result .getName ( ) = "local"
100137 }
101138
139+ /** Gets a `local-home` child XML element of this `session` XML element. */
102140 XMLElement getALocalHomeElement ( ) {
103141 result = this .getAChild ( ) and
104142 result .getName ( ) = "local-home"
105143 }
106144
145+ /** Gets a `session-type` child XML element of this `session` XML element. */
107146 EjbJarSessionTypeElement getASessionTypeElement ( ) { result = this .getAChild ( ) }
108147
148+ /** Gets an `init-method` child XML element of this `session` XML element. */
109149 EjbJarInitMethodElement getAnInitMethodElement ( ) { result = this .getAChild ( ) }
110150
111- // Convenience methods.
151+ /**
152+ * Gets a `method-name` child XML element of a `create-method`
153+ * XML element nested within this `session` XML element.
154+ */
112155 XMLElement getACreateMethodNameElement ( ) {
113156 result = getAnInitMethodElement ( ) .getACreateMethodElement ( ) .getAMethodNameElement ( )
114157 }
115158
159+ /**
160+ * Gets a `method-name` child XML element of a `bean-method`
161+ * XML element nested within this `session` XML element.
162+ */
116163 XMLElement getABeanMethodNameElement ( ) {
117164 result = getAnInitMethodElement ( ) .getABeanMethodElement ( ) .getAMethodNameElement ( )
118165 }
119166}
120167
168+ /**
169+ * A `message-drive` child XML element of a bean type element in an `ejb-jar.xml` file.
170+ */
121171class EjbJarMessageDrivenElement extends EjbJarBeanTypeElement {
122172 EjbJarMessageDrivenElement ( ) { this .getName ( ) = "message-driven" }
123173}
124174
175+ /**
176+ * An `entity` child XML element of a bean type element in an `ejb-jar.xml` file.
177+ */
125178class EjbJarEntityElement extends EjbJarBeanTypeElement {
126179 EjbJarEntityElement ( ) { this .getName ( ) = "entity" }
127180}
128181
182+ /** A `session-type` child XML element of a `session` element in an `ejb-jar.xml` file. */
129183class EjbJarSessionTypeElement extends XMLElement {
130184 EjbJarSessionTypeElement ( ) {
131185 this .getParent ( ) instanceof EjbJarSessionElement and
132186 this .getName ( ) = "session-type"
133187 }
134188
189+ /** Holds if the value of this `session-type` XML element is "Stateful". */
135190 predicate isStateful ( ) { this .getACharactersSet ( ) .getCharacters ( ) = "Stateful" }
136191
192+ /** Holds if the value of this `session-type` XML element is "Stateless". */
137193 predicate isStateless ( ) { this .getACharactersSet ( ) .getCharacters ( ) = "Stateless" }
138194}
139195
196+ /** An `init-method` child XML element of a `session` element in an `ejb-jar.xml` file. */
140197class EjbJarInitMethodElement extends XMLElement {
141198 EjbJarInitMethodElement ( ) {
142199 this .getParent ( ) instanceof EjbJarSessionElement and
143200 this .getName ( ) = "init-method"
144201 }
145202
203+ /** Gets a `create-method` child XML element of this `init-method` XML element. */
146204 EjbJarCreateMethodElement getACreateMethodElement ( ) {
147205 result = this .getAChild ( ) and
148206 result .getName ( ) = "create-method"
149207 }
150208
209+ /** Gets a `bean-method` child XML element of this `init-method` XML element. */
151210 EjbJarBeanMethodElement getABeanMethodElement ( ) {
152211 result = this .getAChild ( ) and
153212 result .getName ( ) = "bean-method"
154213 }
155214}
156215
216+ /**
217+ * A child XML element of an `init-method` element in an `ejb-jar.xml` file.
218+ *
219+ * This is either a `create-method` element, or a `bean-method` element.
220+ */
157221abstract class EjbJarInitMethodChildElement extends XMLElement {
222+ /** Gets a `method-name` child XML element of this `create-method` or `bean-method` XML element. */
158223 XMLElement getAMethodNameElement ( ) {
159224 result = this .getAChild ( ) and
160225 result .getName ( ) = "method-name"
161226 }
162227}
163228
229+ /** A `create-method` child XML element of an `init-method` element in an `ejb-jar.xml` file. */
164230class EjbJarCreateMethodElement extends EjbJarInitMethodChildElement {
165231 EjbJarCreateMethodElement ( ) {
166232 this .getParent ( ) instanceof EjbJarInitMethodElement and
167233 this .getName ( ) = "create-method"
168234 }
169235}
170236
237+ /** A `bean-method` child XML element of an `init-method` element in an `ejb-jar.xml` file. */
171238class EjbJarBeanMethodElement extends EjbJarInitMethodChildElement {
172239 EjbJarBeanMethodElement ( ) {
173240 this .getParent ( ) instanceof EjbJarInitMethodElement and
0 commit comments