Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3a82090

Browse files
committed
Java: add missing QLDoc for EJBJarXML.qll
1 parent 8fe093c commit 3a82090

1 file changed

Lines changed: 69 additions & 2 deletions

File tree

java/ql/src/semmle/code/java/frameworks/javaee/ejb/EJBJarXML.qll

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* Provides classes and predicates for working with
3+
* EJB deployment descriptor XML files (`ejb-jar.xml`).
4+
*/
5+
16
import java
27

38
/**
@@ -6,168 +11,230 @@ import java
611
class 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. */
2939
class 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+
*/
3853
class 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+
*/
6083
abstract 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+
*/
6996
class 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+
*/
121171
class 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+
*/
125178
class 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. */
129183
class 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. */
140197
class 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+
*/
157221
abstract 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. */
164230
class 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. */
171238
class EjbJarBeanMethodElement extends EjbJarInitMethodChildElement {
172239
EjbJarBeanMethodElement() {
173240
this.getParent() instanceof EjbJarInitMethodElement and

0 commit comments

Comments
 (0)