package com.shizhefei.mvc.http; import com.shizhefei.mvc.RequestHandle; import java.util.HashMap; import java.util.Map; public abstract class AbsHttpMethod<METHOD extends AbsHttpMethod,CALLBACK> implements RequestHandle { private String url; public AbsHttpMethod() { } public AbsHttpMethod(String url) { this.url = url; } public abstract void executeAsync(CALLBACK callback); private Map<String, Object> params = new HashMap<String, Object>(); private Map<String, String> headers = new HashMap<String, String>(); public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public Map<String, Object> getParams() { return params; } public Map<String, String> getHeaders() { return headers; } public METHOD addHeader(String key, String value) { this.headers.put(key, value); return (METHOD) this; } public METHOD addParam(String key, int value) { params.put(key, String.valueOf(value)); return (METHOD) this; } public METHOD addParam(String key, boolean value) { params.put(key, String.valueOf(value)); return (METHOD) this; } public METHOD addParam(String key, double value) { params.put(key, String.valueOf(value)); return (METHOD) this; } public METHOD addParam(String key, float value) { params.put(key, String.valueOf(value)); return (METHOD) this; } public METHOD addParam(String key, long value) { params.put(key, String.valueOf(value)); return (METHOD) this; } public METHOD addParam(String key, String value) { params.put(key, value); return (METHOD) this; } public METHOD addParams(Map<String, ?> params) { this.params.putAll(params); return (METHOD) this; } }