/*
* Copyright 2010 jomura.net All Rights Reserved.
*/
package net.jomura.http.util;
import javax.servlet.http.HttpServletRequest;
/**
* WebClientのUser-Agentを判定します。
* 参考: http://fdays.blogspot.com/2007/03/user-agent.html
* @author Jomora (kazuhiko@jomura.net http://jomura.net)
* @since 2010.01.20
* @version 2010.01.20 初版作成
*/
public final class UserAgentUtil {
private String userAgent;
/**
* コンストラクターです。
* @param request HTTP要求オブジェクト
*/
public UserAgentUtil(HttpServletRequest request) {
userAgent = request.getHeader("user-agent");
}
/**
* 携帯電話か?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isMobile() {
return isDoCoMo()
|| isAu()
|| isSoftbank()
|| isWillcom();
}
/**
* DoCoMoか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isDoCoMo() {
return userAgent.startsWith("DoCoMo");
}
/**
* auか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isAu() {
return isAuWAP2() || isAuHDML();
}
/**
* au WAP2.0ブラウザか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isAuWAP2() {
return userAgent.contains("UP.Browser")
&& userAgent.startsWith("KDDI");
}
/**
* au HDMLブラウザか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isAuHDML() {
return userAgent.contains("UP.Browser")
&& !userAgent.startsWith("KDDI");
}
/**
* Softbankか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isSoftbank() {
return userAgent.startsWith("SoftBank")
|| isVodafone()
|| isJphone()
|| userAgent.startsWith("MOT");
}
/**
* Vodafoneか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isVodafone() {
return userAgent.startsWith("Vodafone");
}
/**
* J-PHONEか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isJphone() {
return userAgent.startsWith("J-PHONE");
}
/**
* WILLCOMか?
* @return 該当ならtrue,他ならfalse.
*/
public boolean isWillcom() {
return userAgent.contains("WILLCOM")
|| userAgent.contains("DDIPOCKET");
}
}