⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urlbuilder.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 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 + -