Skip to content

Commit 5193d40

Browse files
committed
Merge pull request ua-parser#11 from broggeri/os_v3_replacement
Add support for os_v3_replacement
2 parents 8f13834 + 848cfe8 commit 5193d40

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

src/main/java/ua_parser/OSParser.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,20 @@ protected static OSPattern patternFromMap(Map<String, String> configMap) {
6666
return(new OSPattern(Pattern.compile(regex),
6767
configMap.get("os_replacement"),
6868
configMap.get("os_v1_replacement"),
69-
configMap.get("os_v2_replacement")));
69+
configMap.get("os_v2_replacement"),
70+
configMap.get("os_v3_replacement")));
7071
}
7172

7273
protected static class OSPattern {
7374
private final Pattern pattern;
74-
private final String osReplacement, v1Replacement, v2Replacement;
75+
private final String osReplacement, v1Replacement, v2Replacement, v3Replacement;
7576

76-
public OSPattern(Pattern pattern, String osReplacement, String v1Replacement, String v2Replacement) {
77+
public OSPattern(Pattern pattern, String osReplacement, String v1Replacement, String v2Replacement, String v3Replacement) {
7778
this.pattern = pattern;
7879
this.osReplacement = osReplacement;
7980
this.v1Replacement = v1Replacement;
8081
this.v2Replacement = v2Replacement;
82+
this.v3Replacement = v3Replacement;
8183
}
8284

8385
public OS match(String agentString) {
@@ -112,11 +114,13 @@ public OS match(String agentString) {
112114
} else if (groupCount >= 3) {
113115
v2 = matcher.group(3);
114116
}
115-
if (groupCount >= 4) {
117+
if (v3Replacement != null) {
118+
v3 = v3Replacement;
119+
} else if (groupCount >= 4) {
116120
v3 = matcher.group(4);
117-
if (groupCount >= 5) {
118-
v4 = matcher.group(5);
119-
}
121+
}
122+
if (groupCount >= 5) {
123+
v4 = matcher.group(5);
120124
}
121125

122126
return family == null ? null : new OS(family, v1, v2, v3, v4);

0 commit comments

Comments
 (0)