OSDN Git Service

.
[codecoverage/main.git] / CoverageFramework / Utility / XElementSelectorUtil.cs
1 using System.Collections.Generic;\r
2 using System.Linq;\r
3 using CoverageFramework.Element.Selector;\r
4 using Paraiba.Linq;\r
5 \r
6 namespace CoverageFramework.Utility\r
7 {\r
8         public static class XElementSelectorUtil\r
9         {\r
10                 public static IXElementSelector Merge(IEnumerable<IXElementSelector> selectors)\r
11                 {\r
12                         return new XElementSelectorUnion(selectors);\r
13                 }\r
14 \r
15                 public static IXElementSelector Merge(params IXElementSelector[] selectors)\r
16                 {\r
17                         return Merge((IEnumerable<IXElementSelector>)selectors);\r
18                 }\r
19 \r
20                 public static IXElementRangeSelector Merge(IEnumerable<IXElementRangeSelector> rangeSelectors)\r
21                 {\r
22                         return new XElementRangeSelectorUnion(rangeSelectors);\r
23                 }\r
24 \r
25                 public static IXElementRangeSelector Merge(params IXElementRangeSelector[] rangeSelectors)\r
26                 {\r
27                         return Merge((IEnumerable<IXElementRangeSelector>)rangeSelectors);\r
28                 }\r
29 \r
30                 public static IXElementSelector Chain(IEnumerable<IXElementSelector> selectors)\r
31                 {\r
32                         return selectors.Aggregate((current, next) => new XElementSelectorPipe(current, next));\r
33                 }\r
34 \r
35                 public static IXElementSelector Chain(params IXElementSelector[] rangeSelectors)\r
36                 {\r
37                         return Chain((IEnumerable<IXElementSelector>)rangeSelectors);\r
38                 }\r
39 \r
40                 public static IXElementRangeSelector Chain(IEnumerable<IXElementRangeSelector> rangeSelectors)\r
41                 {\r
42                         return rangeSelectors.Aggregate((current, next) => new XElementRangeSelectorPipe(current, next));\r
43                 }\r
44 \r
45                 public static IXElementRangeSelector Chain(params IXElementRangeSelector[] rangeSelectors)\r
46                 {\r
47                         return Chain((IEnumerable<IXElementRangeSelector>)rangeSelectors);\r
48                 }\r
49         }\r
50 }