org.fusesource.restygwt.client.JsonpMethod Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of restygwt Show documentation
Show all versions of restygwt Show documentation
RestyGWT is a GWT generator for REST services and JSON encoded data transfer objects
/**
* Copyright (C) 2009-2012 the original author or authors.
* See the notice.md file distributed with this work for additional
* information regarding copyright ownership.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.fusesource.restygwt.client;
import java.util.Map;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.jsonp.client.JsonpRequestBuilder;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.xml.client.Document;
/**
* A specialized method which accesses a resource as a JSONP request.
*
* @author Hiram Chirino
*/
public class JsonpMethod extends Method {
private final Resource resource;
private final JsonpRequestBuilder jsonpBuilder = new JsonpRequestBuilder();
public JsonpMethod(Resource resource) {
this.resource = resource;
}
public JsonpMethod callbackParam(String callbackParam) {
jsonpBuilder.setCallbackParam(callbackParam);
return this;
}
public JsonpMethod failureCallbackParam(String failureCallbackParam) {
jsonpBuilder.setFailureCallbackParam(failureCallbackParam);
return this;
}
@Override
public Method timeout(int timeout) {
jsonpBuilder.setTimeout(timeout);
return this;
}
@Override
public Object send(final JsonCallback callback) {
return jsonpBuilder.requestObject(resource.getUri(), new AsyncCallback() {
@Override
public void onSuccess(JavaScriptObject result) {
callback.onSuccess(JsonpMethod.this, new JSONObject(result));
}
@Override
public void onFailure(Throwable caught) {
callback.onFailure(JsonpMethod.this, caught);
}
});
}
@Override
public Object send(final TextCallback callback) {
return jsonpBuilder.requestString(resource.getUri(), new AsyncCallback() {
@Override
public void onSuccess(String result) {
callback.onSuccess(JsonpMethod.this, result);
}
@Override
public void onFailure(Throwable caught) {
callback.onFailure(JsonpMethod.this, caught);
}
});
}
/**
* helper method to make RestServiceClassCreator easier to maintain
* @param callback
*/
public Object send(final AsyncCallback callback) {
return jsonpBuilder.requestObject(resource.getUri(), callback);
}
@Override
public Object send(RequestCallback callback) throws RequestException {
throw unsupported();
}
@Override
public Method expect(int ...status) {
throw unsupported();
}
@Override
public Request getRequest() {
throw unsupported();
}
@Override
public Response getResponse() {
throw unsupported();
}
@Override
public Method header(String header, String value) {
throw unsupported();
}
@Override
public Method headers(Map headers) {
throw unsupported();
}
@Override
public Method json(JSONValue data) {
throw unsupported();
}
@Override
public Method password(String password) {
throw unsupported();
}
@Override
public Object send(XmlCallback callback) {
throw unsupported();
}
@Override
public Method text(String data) {
throw unsupported();
}
@Override
public Method user(String user) {
throw unsupported();
}
@Override
public Method xml(Document data) {
throw unsupported();
}
private UnsupportedOperationException unsupported() {
return new UnsupportedOperationException("The jsonp method is restricted in what it can be configured with.");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy