📄 urlbuilder.java
字号:
/**
*
*/
package com.esri.solutions.jitk.datasources.ogc.wcs;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;
/**
* @author vlad2928
*
*/
public class URLBuilder implements IURL {
private StringBuffer url;
private HashMap<String, String> params;
private String errorMsg;
public boolean isValid() { return errorMsg.length() == 0; }
private boolean chkStr(String s) { return (Val.chkStr(s).length() > 0); }
public String getErrorMessage() { return this.errorMsg; }
protected URLBuilder() {
this.url = new StringBuffer();
this.params = new HashMap<String, String>();
this.errorMsg = "empty";
}
public URLBuilder(String url) {
this();
setURL(url);
}
private void setURL(String url) {
if(chkStr(url)) {
this.errorMsg = "";
try {
URL URL = new URL(url);
this.url.append(URL.getProtocol()).append("://").append(URL.getHost());
if(URL.getPort() != -1) {
this.url.append(":").append(URL.getPort());
}
this.url.append(URL.getPath()).append("?");
String params = URL.getQuery();
if(chkStr(params)) {
params = params.replaceAll(" ", "").replace('?', '&').replaceAll("&&", "&");
if(chkStr(params)) {
StringTokenizer st = new StringTokenizer(params, "&");
while(st.hasMoreTokens()) {
String sToken = st.nextToken().trim();
int i = sToken.indexOf("=");
if(i > -1) {
this.params.put(sToken.substring(0, i).trim().toLowerCase(), sToken.substring(i + 1).trim());
}
}
}
}
} catch(MalformedURLException ex) {
this.errorMsg = ex.getMessage();
}
}
}
public String getBaseUrl() {
return url.toString();
}
public String getParam(String paramName) {
return (params.containsKey(paramName)) ? params.get(paramName) : null;
}
public void setParam(String paramName, String paramValue) {
if(chkStr(paramName) && chkStr(paramValue)) {
params.remove(paramName);
params.put(paramName, paramValue);
}
}
public void removeParam(String paramName) {
if(chkStr(paramName) && params.containsKey(paramName)) {
params.remove(paramName);
}
}
public String toString() {
StringBuffer sbURL = new StringBuffer();
if(isValid()) {
sbURL.append(this.url);
for(Iterator<String> i = params.keySet().iterator(); i.hasNext();) {
String sKey = i.next();
String sVal = params.get(sKey);
if(chkStr(sVal)) {
if(sbURL.indexOf("?") != (sbURL.length() - 1)) {
sbURL.append("&");
}
sbURL.append(sKey);
sbURL.append("=");
sbURL.append(sVal);
}
}
}
return sbURL.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -