/* * Licensed Materials - Property of IBM * © Copyright IBM Corporation 2015. All Rights Reserved. */ package com.ibm.mil.cafejava; import android.support.annotation.Nullable; import com.google.gson.Gson; import com.worklight.wlclient.api.WLResourceRequest; import com.worklight.wlclient.api.WLResponseListener; import java.net.URI; import java.net.URISyntaxException; /** * Implementation for invoking a procedure from a JavaScript based adapter. * * @see JavaProcedureInvoker * * @author John Petitto (github @jpetitto) * @author Tanner Preiss (github @t-preiss) */ public final class JSProcedureInvoker implements ProcedureInvoker { private String adapterName; private String procedureName; private Object[] params; public JSProcedureInvoker(String adapterName, String procedureName, @Nullable Object... params) { this.adapterName = adapterName; this.procedureName = procedureName; this.params = params; } @Override public void invoke(WLResponseListener wlResponseListener) { try { URI path = new URI("/adapters/" + adapterName + "/" + procedureName); WLResourceRequest request = new WLResourceRequest(path, WLResourceRequest.GET); request.setQueryParameter("params", new Gson().toJson(params)); request.send(wlResponseListener); } catch (URISyntaxException e) { e.printStackTrace(); } } }