private void setMajorMinorVersionByPattern( String userAgent, String patternString, ClientProperties properties) { Matcher matcher = Pattern.compile(patternString).matcher(userAgent); if (matcher.find()) { properties.setBrowserVersionMajor(Integer.parseInt(matcher.group(1))); properties.setBrowserVersionMinor(Integer.parseInt(matcher.group(2))); } }
private ClientProperties extractFirefoxVersion(String userAgent) { ClientProperties props = new ClientProperties(); props.setBrowserVersionMajor(-1); props.setBrowserVersionMinor(-1); if (userAgent != null) { String userAgencyLc = userAgent.toLowerCase(); props.setBrowserVersionMajor(-1); props.setBrowserVersionMinor(-1); setMajorMinorVersionByPattern(userAgencyLc, "firefox/(\\d+)\\.(\\d+)", props); } return props; }
private ClientProperties extractSafariVersion(String userAgent) { ClientProperties props = new ClientProperties(); props.setBrowserVersionMajor(-1); props.setBrowserVersionMinor(-1); if (userAgent != null) { String userAgencyLc = userAgent.toLowerCase(); setMajorMinorVersionByPattern(userAgencyLc, "version/(\\d+)\\.(\\d+)", props); } return props; }
private ClientProperties extractIEVersion(String userAgent) { ClientProperties props = new ClientProperties(); props.setBrowserVersionMajor(-1); props.setBrowserVersionMinor(-1); if (userAgent != null) { String userAgencyLc = userAgent.toLowerCase(); String pattern; if (userAgencyLc.contains("like gecko")) { pattern = "rv:(\\d+)\\.(\\d+)"; } else { pattern = "msie (\\d+)\\.(\\d+)"; } setMajorMinorVersionByPattern(userAgencyLc, pattern, props); } return props; }
private ClientProperties extractOperaVersion(String userAgent) { ClientProperties props = new ClientProperties(); props.setBrowserVersionMajor(-1); props.setBrowserVersionMinor(-1); if (userAgent != null) { String userAgencyLc = userAgent.toLowerCase(); if (userAgencyLc.startsWith("opera/") && userAgencyLc.contains("version/")) { setMajorMinorVersionByPattern(userAgencyLc, "version/(\\d+)\\.(\\d+)", props); } else if (userAgencyLc.startsWith("opera/") && !userAgencyLc.contains("version/")) { setMajorMinorVersionByPattern(userAgencyLc, "opera/(\\d+)\\.(\\d+)", props); } else { setMajorMinorVersionByPattern(userAgencyLc, "opera (\\d+)\\.(\\d+)", props); } } return props; }
/** * extracts the major and minor version out of the userAgentString string. * * @param patternString * The pattern must contain two matching groups */ private void setMajorMinorVersionByPattern(String patternString) { String userAgent = getUserAgentStringLc(); Matcher matcher = Pattern.compile(patternString).matcher(userAgent); if (matcher.find()) { properties.setBrowserVersionMajor(StringValue.valueOf(matcher.group(1)).toInt(-1)); properties.setBrowserVersionMinor(StringValue.valueOf(matcher.group(2)).toInt(-1)); } } }
properties.setBrowserVersionMajor(majorVersion);
properties.setBrowserVersionMajor(majorVersion);