/** * This file is part of ObjectFabric (http://objectfabric.org). * * ObjectFabric is licensed under the Apache License, Version 2.0, the terms * of which may be found at http://www.apache.org/licenses/LICENSE-2.0.html. * * Copyright ObjectFabric Inc. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ package site_demo; import java.text.NumberFormat; import org.objectfabric.IndexListener; import org.objectfabric.JVMWorkspace; import org.objectfabric.Netty; import org.objectfabric.TArrayLong; import org.objectfabric.Workspace; public class Array { /** * Code for the project's home page. */ public static void main(String[] args) throws Exception { // Like opening a browser Workspace w = new JVMWorkspace(); // Enable network connections w.addURIHandler(new Netty()); // Get live array of numbers through WebSocket String uri = "ws://test.objectfabric.org/array"; final TArrayLong a = (TArrayLong) w.open(uri).get(); final NumberFormat format = NumberFormat.getIntegerInstance(); // Add a listener on array, called when an element is // set to a new value server side a.addListener(new IndexListener() { @Override public void onSet(int i) { String n = format.format(a.get(i)); switch (i) { case 0: System.out.println("World population: " + n); break; case 1: System.out.println("Internet Users: " + n); break; } } }); Thread.sleep(Long.MAX_VALUE); } }