/*
GNU GENERAL PUBLIC LICENSE
Copyright (C) 2006 The Lobo Project
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
verion 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Contact info: lobochief@users.sourceforge.net
*/
/*
* Created on Mar 13, 2005
*/
package org.lobobrowser.request;
import org.lobobrowser.ua.UserAgent;
public class OrigUserAgentImpl implements UserAgent {
private static final UserAgent instance = new OrigUserAgentImpl();
private OrigUserAgentImpl() {
}
public static UserAgent getInstance() {
return instance;
}
public String getName() {
return "Lobo";
}
public String getMajorVersion() {
return "0";
}
public String getMinorVersion() {
return "98.5";
}
public String getVersion() {
return this.getMajorVersion() + "." + this.getMinorVersion();
}
public String getJavaVersion() {
return System.getProperty("java.version");
}
private volatile String textValue = null;
public String getUserAgentString() {
final String tv = this.textValue;
if (tv == null) {
/*
final GeneralSettings settings = AccessController.doPrivileged(new java.security.PrivilegedAction<GeneralSettings>() {
public GeneralSettings run() {
return GeneralSettings.getInstance();
}
});
final boolean spoofIE = settings.isSpoofIE();
final String ieVersion = settings.getIeVersion();
tv = "Mozilla/" + settings.getMozVersion() + " (compatible" + (spoofIE ? "; MSIE " + ieVersion : "") + "; " + getOs() + ") "
+ this.getName() + "/" + this.getVersion();
*/
this.textValue = tv;
}
return tv;
}
@Override
public String toString() {
return this.getUserAgentString();
}
/**
* Removes cached user agent string.
*/
public void invalidateUserAgent() {
this.textValue = null;
}
/*
* (non-Javadoc)
*
* @see org.xamjwg.clientlet.UserAgent#getNameAndVersion()
*/
public String getNameAndVersion() {
return this.getName() + " " + this.getVersion();
}
public String getInfoUrl() {
return "http://lobobrowser.org";
}
/*
private static String getOs() {
return System.getProperty("os.name") + " " + System.getProperty("os.version");
}*/
// //Note: This is not being used, but generally use of Strings a WeakHashMap
// //keys should be revised.
// private Map<String,String> sessionIDMap = new WeakHashMap<String,String>();
//
// public String getSessionID(java.net.URL url) {
// //TODO: Should be a LRU cache instead of a weak hash map.
// String host = url.getHost();
// String key = url.getProtocol().toLowerCase() + "#" + (host == null ? "" :
// host.toLowerCase());
// synchronized(this) {
// String sessionID = this.sessionIDMap.get(key);
// if(sessionID == null) {
// StringBuffer rawIdentifier = new StringBuffer(key);
// rawIdentifier.append(ID.getGlobalProcessID());
// sessionID = ID.getHexString(ID.getMD5Bytes(rawIdentifier.toString()));
// this.sessionIDMap.put(key, sessionID);
// }
// return sessionID;
// }
// }
}