@@ -68,12 +68,21 @@ var AnnotationRules = On(Any).Self(
6868 On (jdt .IfStatement ).Roles (If , Statement ).Children (
6969 On (jdt .PropertyExpression ).Roles (IfCondition ),
7070 On (jdt .PropertyThenStatement ).Roles (IfBody ),
71- On (jdt .PropertyElseExpression ).Roles (IfElse ),
71+ On (jdt .PropertyElseStatement ).Roles (IfElse ),
7272 ),
7373
7474 On (jdt .SwitchStatement ).Roles (Switch , Statement ).Children (
7575 //TODO: On(jdt.PropertyExpression).Roles(SwitchExpression),
76- On (jdt .SwitchCase ).Roles (SwitchCase ),
76+ On (jdt .SwitchCase ).Self (
77+ On (HasChild (Any )).Roles (SwitchCase ).Children (
78+ On (jdt .PropertyExpression ).Roles (SwitchCaseCondition ),
79+ ),
80+ On (Not (HasChild (Any ))).Roles (SwitchDefault ),
81+ ),
82+ // FIXME: Switch case bodies are not enclosed in a block, thus it may
83+ // contain an arbitrary number of statements (of any kind). So this
84+ // is just an initial approach.
85+ On (jdt .ExpressionStatement ).Roles (SwitchCaseBody ),
7786 ),
7887
7988 // Loops
@@ -149,16 +158,25 @@ var AnnotationRules = On(Any).Self(
149158 ),
150159 ),
151160
161+ On (jdt .TryStatement ).Roles (Try , Statement ).Children (
162+ // TODO: TryWithResourcesStatement
163+ On (jdt .PropertyBody ).Roles (TryBody ),
164+ On (jdt .PropertyCatchClauses ).Roles (TryCatch ),
165+ On (jdt .PropertyFinally ).Roles (TryFinally ),
166+ ),
167+
168+ On (jdt .ThrowStatement ).Roles (Throw , Statement ),
169+
152170 On (jdt .AssertStatement ).Roles (Assert , Statement ),
153171
154172 // Others
155173 On (jdt .Block ).Roles (BlockScope , Block ),
156174 On (jdt .ExpressionStatement ).Roles (Statement ),
157175 On (jdt .ReturnStatement ).Roles (Return , Statement ),
176+ On (jdt .BreakStatement ).Roles (Break , Statement ),
158177
159178 On (jdt .ThisExpression ).Roles (This , Expression ),
160179 //TODO: synchronized
161- //TODO: try-with-resources
162180 On (jdt .Javadoc ).Roles (Documentation , Comment ),
163181 ),
164182)
0 commit comments