OSDN Git Service

change CoverageReporter/MainForm.cs
[codecoverage/main.git] / CoverageFramework / Operator / Selector / Java2 / StatementSelector.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.ComponentModel.Composition;\r
4 using System.Linq;\r
5 using System.Text;\r
6 using System.Xml.Linq;\r
7 \r
8 namespace CoverageFramework.Operator.Selector.Java2\r
9 {\r
10         [Export(typeof(IXElementSelector))]\r
11         public class StatementSelector : IXElementSelector\r
12         {\r
13                 private static readonly string[] StatementNames = {\r
14                         // If\r
15                         "IfThenStatement",\r
16                         "IfThenElseStatement",\r
17                         "IfThenElseStatementNoShortIf",\r
18                         // For\r
19                         "BasicForStatement",\r
20                         "EnhancedForStatement",\r
21                         "ForStatementNoShortIf",\r
22                         // While\r
23                         "WhileStatement",\r
24                         "WhileStatementNoShortIf",\r
25                         // StatementWithoutTrailingSubstatement\r
26             //"Block",\r
27                         "EmptyStatement",\r
28                         "ExpressionStatement",\r
29                         "AssertStatement",\r
30             "SwitchStatement",\r
31                         "DoStatement",\r
32                         "BreakStatement",\r
33                         "ContinueStatement",\r
34                         "ReturnStatement",\r
35                         "SynchronizedStatement",\r
36                         "ThrowStatement",\r
37                         //"TryStatement",\r
38                         // BlockStatement\r
39             "LocalVariableDeclarationStatement",\r
40                 };\r
41 \r
42                 public IEnumerable<XElement> Select(XElement root)\r
43                 {\r
44                         return root.Descendants()\r
45                                 .Where(e => StatementNames.Any(e.Name.LocalName.EndsWith));\r
46                 }\r
47         }\r
48 }\r