diff options
Diffstat (limited to 'branches/sca-java-1.5/samples/store-android/src/services/CatalogProxy.java')
-rw-r--r-- | branches/sca-java-1.5/samples/store-android/src/services/CatalogProxy.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/branches/sca-java-1.5/samples/store-android/src/services/CatalogProxy.java b/branches/sca-java-1.5/samples/store-android/src/services/CatalogProxy.java new file mode 100644 index 0000000000..3ce9459844 --- /dev/null +++ b/branches/sca-java-1.5/samples/store-android/src/services/CatalogProxy.java @@ -0,0 +1,52 @@ +package services; + +import java.util.ArrayList; +import java.util.List; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import services.json.rpc.JSONRpc; + +public class CatalogProxy implements Catalog { + private static final String jsonRPCServiceURI = "http://192.168.1.104:8080/Catalog"; + private static final String jsonRPCRequest = "{\"id\": 3, \"method\": \"Service.get\", \"params\": []}"; + + private List<Item> catalog = new ArrayList<Item>(); + + public CatalogProxy() { + initialize(); + } + + public void initialize() { + JSONObject json = null; + + try { + json = JSONRpc.invoke(jsonRPCServiceURI, jsonRPCRequest); + + if(json == null) { + return; + } + + JSONArray result = json.getJSONArray("result"); + for(int i = 0; i < result.length(); i++) { + Item item = new Item(); + item.setName(result.getJSONObject(i).getString("name")); + item.setPrice(result.getJSONObject(i).getString("price")); + + catalog.add(item); + } + + } catch (JSONException e) { + e.printStackTrace(); + } + } + + public Item[] get() { + Item[] catalogArray = new Item[catalog.size()]; + catalog.toArray(catalogArray); + return catalogArray; + } + +} |