Created
August 9, 2013 07:15
-
-
Save He-Pin/6191724 to your computer and use it in GitHub Desktop.
Builder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.pekall.cd.mdm.web.admin.rpc.builder; | |
import com.ning.http.client.Request; | |
import com.ning.http.client.RequestBuilder; | |
/** | |
* Author: kerr | |
* Mail: pin.he@pekall.com | |
*/ | |
public abstract class AbstractBuilder implements Builder { | |
private final RequestBuilder builder; | |
protected String token; | |
// public AbstractBuilder() { | |
// this.builder = new RequestBuilder(); | |
// } | |
public AbstractBuilder setToken(String token) { | |
this.token = token; | |
return this; | |
} | |
protected AbstractBuilder(final String method) { | |
this.builder = new RequestBuilder(method); | |
} | |
/** | |
* need override | |
*/ | |
public AbstractBuilder newBuilder() { | |
return null; | |
} | |
public AbstractBuilder setURl(final String url) { | |
builder.setUrl(url); | |
return this; | |
} | |
public AbstractBuilder setHeader(final String key, final String value) { | |
builder.setHeader(key, value); | |
return this; | |
} | |
public AbstractBuilder addHeader(final String key, final String value) { | |
builder.addHeader(key, value); | |
return this; | |
} | |
public AbstractBuilder addParameter(final String key, final String value) { | |
builder.addParameter(key, value); | |
return this; | |
} | |
public AbstractBuilder addQueryParameter(final String key, final String value) { | |
builder.addQueryParameter(key, value); | |
return this; | |
} | |
public AbstractBuilder setBody(final String body) { | |
builder.setBody(body); | |
return this; | |
} | |
public AbstractBuilder authorization(final String token) { | |
builder.addHeader("Authorization", token); | |
return this; | |
} | |
@Override | |
public Request build() { | |
if (!validated()) { | |
throw new IllegalStateException("is not validated,need more stable state"); | |
} | |
preBuild(); | |
return builder.build(); | |
} | |
abstract protected void preBuild(); | |
protected boolean validated() { | |
return false; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.pekall.cd.mdm.web.admin.rpc.builder; | |
import com.ning.http.client.Request; | |
/** | |
* Author: kerr | |
* Mail: pin.he@pekall.com | |
*/ | |
public interface Builder { | |
Request build(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment