Example usage for io.vertx.core.json JsonArray add

List of usage examples for io.vertx.core.json JsonArray add

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray add.

Prototype

public JsonArray add(Object value) 

Source Link

Document

Add an Object to the JSON array.

Usage

From source file:se.liquidbytes.jel.system.device.DeviceManager.java

License:Apache License

public void listAdapterDevices(String adapterId, Handler<AsyncResult<JsonArray>> resultHandler) {
    DeliveryOptions options = new DeliveryOptions();
    options.addHeader("action", "listDevices");
    DeployedAdapter adapter = JelService.adapterManager().getAdapter(adapterId);

    if (adapter == null) {
        resultHandler//from w  w  w.ja v a2 s.co m
                .handle(Future.failedFuture(String.format("Adapter with id %s does not exist.", adapterId)));
    } else {
        // Send message to adapter to report back its devices.
        JelService.vertx().eventBus().send(String.format("%s.%s@%s:%d", AdapterEvents.EVENTBUS_ADAPTERS,
                adapter.config().getType(), adapter.config().getAddress(), adapter.config().getPort()), null,
                options, res -> {
                    if (res.succeeded()) {
                        JsonArray devices = new JsonArray();

                        JsonObject result = (JsonObject) res.result().body();
                        result.getJsonArray("result").forEach((d) -> {
                            JsonObject tmpDevice = (JsonObject) d;

                            // Sync found devices with allDevices-collection in case we are out of sync and have missed an event!
                            addToDeviceCollections(new JsonObject().put("adapterId", adapterId)
                                    .put("name", tmpDevice.getString("name"))
                                    .put("type", tmpDevice.getString("type"))
                                    .put("hwId", tmpDevice.getString("hwId")));

                            devices.add(new JsonObject()
                                    .put("deviceId", generateDeviceId(adapterId, tmpDevice.getString("hwId")))
                                    .put("type", tmpDevice.getString("type"))
                                    .put("name", tmpDevice.getString("name")));
                        });

                        resultHandler.handle(Future.succeededFuture(devices));
                    } else {
                        resultHandler.handle(Future.failedFuture(res.cause()));
                    }
                });
    }
}

From source file:se.liquidbytes.jel.system.device.DeviceManager.java

License:Apache License

/**
 * Returns a list of all available devices for all adapters.
 *
 * @param resultHandler Promise will give the list of devices or a error if one has occured.
 *//*from   w  w w. j a  v  a 2  s .  c o m*/
public void listAllDevices(Handler<AsyncResult<JsonArray>> resultHandler) {
    DeliveryOptions options = new DeliveryOptions();
    options.addHeader("action", "listDevices");
    List<DeployedAdapter> adapters = JelService.adapterManager().getAdapters();

    if (adapters.isEmpty()) {
        resultHandler.handle(Future.succeededFuture(new JsonArray()));
    } else {
        Promise promise = JelService.promiseFactory().create();
        adapters.stream().forEach((_item) -> {
            // Send message to all adapters to report back their devices.
            promise.then((context, onResult) -> {
                JelService.vertx().eventBus().send(String.format("%s.%s@%s:%d", AdapterEvents.EVENTBUS_ADAPTERS,
                        _item.config().getType(), _item.config().getAddress(), _item.config().getPort()), null,
                        options, res -> {
                            if (res.succeeded()) {
                                // All adapters fills in turn a json-array named "adapterDevices".
                                JsonArray adapterDevices = context.getJsonArray("adapterDevices");

                                // If we are the first adapter to report back, create the array.
                                if (adapterDevices == null) {
                                    adapterDevices = new JsonArray();
                                }

                                JsonObject result = (JsonObject) res.result().body();

                                adapterDevices.add(new JsonObject()
                                        .put("adapterId", result.getString("adapterId"))
                                        .put("devices", new JsonArray().addAll(result.getJsonArray("result"))));

                                context.put("adapterDevices", adapterDevices);
                                onResult.accept(true);
                            } else {
                                context.put("errorMessage", res.cause().toString());
                                onResult.accept(false);
                            }
                        });
            });
        });

        promise.done((onSuccess) -> {
            // When we are done, all adapters devices should be here.
            JsonArray adapterDevices = onSuccess.getJsonArray("adapterDevices");
            JsonArray devices = new JsonArray();

            adapterDevices.forEach((adl) -> {

                JsonObject adapterDeviceList = (JsonObject) adl;
                String adapterId = adapterDeviceList.getString("adapterId");

                adapterDeviceList.getJsonArray("devices").forEach((ad) -> {
                    JsonObject tmpDevice = (JsonObject) ad;

                    devices.add(new JsonObject().put("adapterId", adapterId)
                            .put("deviceId", generateDeviceId(adapterId, tmpDevice.getString("hwId")))
                            .put("type", tmpDevice.getString("type")).put("name", tmpDevice.getString("name")));

                    // Sync found devices with allDevices-collection in case we are out of sync and have missed an event!
                    addToDeviceCollections(new JsonObject().put("adapterId", adapterId)
                            .put("hwId", tmpDevice.getString("hwId")).put("type", tmpDevice.getString("type"))
                            .put("name", tmpDevice.getString("name")));
                });
            });

            resultHandler.handle(Future.succeededFuture(devices));
        }).except((onError) -> {
            resultHandler.handle(Future.failedFuture(onError.getString("errorMessage")));
        }).eval();
    }
}

From source file:se.liquidbytes.jel.system.impl.JelServiceImpl.java

License:Apache License

@Override
public void listInstalledPlugins(Handler<AsyncResult<JsonArray>> resultHandler) {
    try {//from   www . ja  va  2s. c  o m
        List<PluginDesc> plugins = JelService.pluginManager().getInstalledPlugins();

        JsonArray list = new JsonArray();
        plugins.stream().forEach((plugin) -> {
            list.add(plugin.toApi());
        });

        resultHandler.handle(Future.succeededFuture(list));
    } catch (Exception ex) {
        resultHandler.handle(Future.failedFuture(ex.getMessage()));
    }
}

From source file:se.liquidbytes.jel.system.impl.JelServiceImpl.java

License:Apache License

@Override
public void listAvailableAdapterTypes(Handler<AsyncResult<JsonArray>> resultHandler) {
    try {/*from w  w w.ja  v  a2 s  .  co m*/
        List<PluginDesc> adapterTypes = JelService.adapterManager().getAvailableAdapterTypes();

        JsonArray list = new JsonArray();
        adapterTypes.stream().forEach((adapterType) -> {
            list.add(adapterType.toApi());
        });

        resultHandler.handle(Future.succeededFuture(list));
    } catch (Exception ex) {
        resultHandler.handle(Future.failedFuture(ex.getMessage()));
    }
}

From source file:se.liquidbytes.jel.system.impl.JelServiceImpl.java

License:Apache License

@Override
public void listAdapters(Handler<AsyncResult<JsonArray>> resultHandler) {
    try {/*from  w w w .  ja v a 2  s  .co m*/
        List<DeployedAdapter> adapters = JelService.adapterManager().getAdapters();

        JsonArray list = new JsonArray();
        adapters.stream().forEach((adapter) -> {
            list.add(adapter.toApi());
        });

        resultHandler.handle(Future.succeededFuture(list));
    } catch (Exception ex) {
        resultHandler.handle(Future.failedFuture(ex.getMessage()));
    }
}

From source file:se.liquidbytes.jel.SystemInfo.java

License:Apache License

/**
 * Get useful system information. This information is mostly static (does not change frequently).
 *
 * @return Document with system information.
 *//*from  w w w  .  ja  v a2  s  .c om*/
public static JsonObject getSystemInformation() {
    JsonObject info = new JsonObject();

    info.put("applicationVersion", getVersion());
    info.put("applicationBuildnumber", getBuildNumber());
    info.put("applicationStarttime", GetApplicationStarttime());
    info.put("serverCurrenttime", LocalDateTime.now().toString());

    JsonObject java = new JsonObject();
    java.put("virtualMachine", getJavaVirtualMachine());
    java.put("vendor", getJavaVendor());
    java.put("version", getJavaVersion());
    java.put("javaHome", getJavaHome());
    java.put("runtime", getJavaRuntime());
    java.put("specificationName", getJavaSpecificationName());
    info.put("java", java);

    JsonObject os = new JsonObject();
    os.put("name", getOsName());
    os.put("architecture", getOsArchitecture());
    os.put("description", getOsDescription());
    os.put("version", getOsVersion());
    info.put("os", os);

    JsonObject hardware = new JsonObject();
    hardware.put("availableCPUs", getAvailableCPUs());
    hardware.put("ipAddress", getIP());
    hardware.put("gatewayAddress", getGatewayIP());
    hardware.put("serverEndpoint", Settings.getServerEndpoint());
    hardware.put("bogoMIPS", getBogoMIPS());
    info.put("hardware", hardware);

    if (isRaspberryPi()) {
        JsonObject raspberry = new JsonObject();
        raspberry.put("boardType", getRaspberryBoardType());
        raspberry.put("clockFrequencyArm", getRaspberryClockFrequencyArm());
        raspberry.put("clockFrequencyCore", getRaspberryClockFrequencyCore());
        raspberry.put("clockFrequencyH264", getRaspberryClockFrequencyH264());
        raspberry.put("clockFrequencyPWM", getRaspberryClockFrequencyPWM());
        raspberry.put("clockFrequencyUART", getRaspberryClockFrequencyUART());
        raspberry.put("codecH264Enabled", getRaspberryCodecH264Enabled());
        raspberry.put("codecMPG2Enabled", getRaspberryCodecMPG2Enabled());
        raspberry.put("codecWVC1Enabled", getRaspberryCodecWVC1Enabled());
        raspberry.put("cpuArchitecture", getRaspberryCpuArchitecture());

        JsonArray features = new JsonArray();
        for (String feature : getRaspberryCpuFeatures()) {
            features.add(feature);
        }
        raspberry.put("cpuFeatures", features);

        raspberry.put("cpuImplementer", getRaspberryCpuImplementer());
        raspberry.put("cpuPart", getRaspberryCpuPart());
        raspberry.put("cpuRevision", getRaspberryCpuRevision());
        raspberry.put("cpuVariant", getRaspberryCpuVariant());
        raspberry.put("cpuVoltage", getRaspberryCpuVoltage());
        raspberry.put("hardware", getRaspberryHardware());
        raspberry.put("osFirmwareBuild", getRaspberryOsFirmwareBuild());
        raspberry.put("osFirmwareDate", getRaspberryOsFirmwareDate());
        raspberry.put("revision", getRaspberryRevision());
        raspberry.put("serial", getRaspberrySerial());
        hardware.put("details", raspberry);
    }

    return info;
}

From source file:se.liquidbytes.jel.web.api.AdapterApi.java

License:Apache License

public void list(RoutingContext context) {
    service.listAdapters((r) -> {//  ww w  . j a v a  2  s .  c o  m
        if (r.succeeded()) {
            JsonArray adapters = new JsonArray();
            r.result().forEach(a -> {
                JsonObject adapter = (JsonObject) a;
                adapter.put("devices",
                        String.format("%s/adapters/%s/devices", API_ENDPOINT, adapter.getString("id")));
                adapter.put("supportedDevices", String.format("%s/adapters/%s/supportedDevices", API_ENDPOINT,
                        adapter.getString("id")));
                adapters.add(adapter);
            });

            JsonObject result = new JsonObject().put("devices", API_ENDPOINT + "/adapters/devices")
                    .put("adapters", adapters);

            context.response().end(result.encodePrettily());
        } else {
            context.fail(r.cause());
        }
    });
}