package fr.yunes;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* This <code>UserAgent</code> class roughly represents userparsed user-agent strings.
*
* @author yunes
* @version 1.0
*/
public class UserAgent {
private String compatibility = "unparsed";
private String platform = "unparsed";
private final String compatibilityRegex = "^(\\p{Alpha}*)/\\S+";
private final Pattern compatibilityPattern = Pattern.compile(compatibilityRegex);
private final String platformRegex = "^\\p{Alpha}*/\\S+ \\((\\p{Alpha}+)[^\\)]*\\)";
private final Pattern platformPattern = Pattern.compile(platformRegex);
/**
* This constructs an object that represents a parsed user-agent string.
* Beware that this is a very very poor version of it, intented for training purpose only.
* @param text the text to be parsed
*/
public UserAgent(String text) {
final Matcher compatibilityMatcher = compatibilityPattern.matcher(text);
if (compatibilityMatcher.find()) {
compatibility = compatibilityMatcher.group(1);
} else {
compatibility = "unknown";
}
final Matcher platformMatcher = platformPattern.matcher(text);
if (platformMatcher.find()) {
platform = platformMatcher.group(1);
} else {
platform = "unknown";
}
}
public String getCompatibility() {
return compatibility;
}
public String toString() {
return "Platform="+platform
+", Compatibility="+compatibility
;
}
}