|
1 | 1 | /** |
2 | | - * Provides predicates related to C# qualified name. |
| 2 | + * Provides predicates related to C# qualified names. |
3 | 3 | */ |
4 | 4 |
|
5 | 5 | /** |
6 | | - * Returns the concatenation of `qualifier` and `name`, separated by a dot. |
| 6 | + * Returns the concatenation of `namespace` and `name`, separated by a dot. |
7 | 7 | */ |
8 | 8 | bindingset[namespace, name] |
9 | | -string printQualifiedName(string namespace, string name) { |
| 9 | +string getQualifiedName(string namespace, string name) { |
10 | 10 | if namespace = "" then result = name else result = namespace + "." + name |
11 | 11 | } |
12 | 12 |
|
13 | 13 | /** |
14 | | - * Returns the concatenation of `qualifier`, `type` and `name`, separated by a dot. |
| 14 | + * Returns the concatenation of `namespace`, `type` and `name`, separated by a dot. |
15 | 15 | */ |
16 | 16 | bindingset[namespace, type, name] |
17 | | -string printQualifiedName(string namespace, string type, string name) { |
18 | | - result = printQualifiedName(namespace, type) + "." + name |
| 17 | +string getQualifiedName(string namespace, string type, string name) { |
| 18 | + result = getQualifiedName(namespace, type) + "." + name |
19 | 19 | } |
20 | 20 |
|
21 | | -private string getNameSplitter() { result = "(.*)\\.([^\\.]+)$" } |
22 | | - |
23 | 21 | /** |
| 22 | + * Holds if `qualifiedName` is the concatenation of `qualifier` and `name`, separated by a dot. |
24 | 23 | */ |
25 | 24 | bindingset[qualifiedName] |
26 | 25 | predicate splitQualifiedName(string qualifiedName, string qualifier, string name) { |
27 | | - if qualifiedName.regexpMatch(getNameSplitter()) |
28 | | - then |
29 | | - qualifier = qualifiedName.regexpCapture(getNameSplitter(), 1) and |
30 | | - name = qualifiedName.regexpCapture(getNameSplitter(), 2) |
31 | | - else ( |
32 | | - qualifier = "" and name = qualifiedName |
| 26 | + exists(string nameSplitter | nameSplitter = "(.*)\\.([^\\.]+)$" | |
| 27 | + qualifier = qualifiedName.regexpCapture(nameSplitter, 1) and |
| 28 | + name = qualifiedName.regexpCapture(nameSplitter, 2) |
| 29 | + or |
| 30 | + not qualifiedName.regexpMatch(nameSplitter) and |
| 31 | + qualifier = "" and |
| 32 | + name = qualifiedName |
33 | 33 | ) |
34 | 34 | } |
0 commit comments