package com.openkm.frontend.client.util;
import java.util.HashMap;
import java.util.Map;
import com.google.gwt.http.client.URL;
/**
* @author jllort
*
*/
public class Location {
private String hash;
private String host;
private String hostName;
private String href;
private String path;
private String port;
private String protocol;
private String queryString;
private HashMap<String, String> paramMap;
public String getHash() {
return hash;
}
public String getHost() {
return host;
}
public String getHostName() {
return hostName;
}
public String getHref() {
return href;
}
public String getPath() {
return path;
}
public String getContext() {
String context = path.substring(path.indexOf("/") + 1);
context = context.substring(0, context.indexOf("/"));
return "/" + context;
}
public String getPort() {
return port;
}
public String getProtocol() {
return protocol;
}
public String getQueryString() {
return queryString;
}
protected void setHash(String hash) {
this.hash = hash;
}
protected void setHost(String host) {
this.host = host;
}
protected void setHostName(String hostName) {
this.hostName = hostName;
}
protected void setHref(String href) {
this.href = href;
}
protected void setPath(String path) {
this.path = path;
}
protected void setPort(String port) {
this.port = port;
}
protected void setProtocol(String protocol) {
this.protocol = protocol;
}
protected void setQueryString (String queryString) {
this.queryString = queryString;
paramMap = new HashMap<String, String>();
if (queryString != null && queryString.length() > 1) {
String qs = queryString.substring(1);
String[] kvPairs = qs.split("&");
for (int i = 0; i < kvPairs.length; i++) {
String[] kv = kvPairs[i].split("=");
if (kv.length > 1) {
paramMap.put(kv[0], URL.decodeComponent(kv[1]));
}
else {
paramMap.put(kv[0], "");
}
}
}
}
public String getParameter (String name) {
return (String) paramMap.get(name);
}
public Map<String, String> getParameterMap() {
return paramMap;
}
}