private EdgeConnectorForKVSConfiguration buildEdgeConnectorForKVSConfiguration()

in src/main/java/com/aws/iot/edgeconnectorforkvs/dataaccessor/SiteWiseManager.java [90:136]


    private EdgeConnectorForKVSConfiguration buildEdgeConnectorForKVSConfiguration(String cameraSiteWiseAssetId)
            throws IllegalAccessException {
        DescribeAssetResponse assetResponse = siteWiseClient.describeAsset(cameraSiteWiseAssetId);
        EdgeConnectorForKVSConfiguration edgeConnectorForKVSConfiguration = new EdgeConnectorForKVSConfiguration();
        edgeConnectorForKVSConfiguration.setSiteWiseAssetId(cameraSiteWiseAssetId);

        for (AssetProperty assetProperty : assetResponse.assetProperties()) {
            GetAssetPropertyValueResponse result;
            Field[] fields = edgeConnectorForKVSConfiguration.getClass().getDeclaredFields();
            for (Field field : fields) {
                if (field.getName().equalsIgnoreCase(assetProperty.name())) {
                    result = siteWiseClient
                            .getAssetPropertyValue(cameraSiteWiseAssetId, assetProperty.id());
                    if (result != null && result.propertyValue() != null) {
                        if (field.getType() == String.class) {
                            field.set(edgeConnectorForKVSConfiguration, result.propertyValue().value().stringValue());
                            break;
                        } else if (field.getType() == Integer.TYPE || field.getType() == Integer.class) {
                            field.set(edgeConnectorForKVSConfiguration, result.propertyValue().value().integerValue());
                            break;
                        }
                    }
                }
            }

            if (assetProperty.name().equalsIgnoreCase(Constants.SITE_WISE_VIDEO_UPLOADED_TIME_RANGE_MEASUREMENT_NAME)) {
                edgeConnectorForKVSConfiguration.setVideoUploadedTimeRangePropertyId(assetProperty.id());
            }
            if (assetProperty.name().equalsIgnoreCase(Constants.SITE_WISE_VIDEO_RECORDED_TIME_RANGE_MEASUREMENT_NAME)) {
                edgeConnectorForKVSConfiguration.setVideoRecordedTimeRangePropertyId(assetProperty.id());
            }
            if (assetProperty.name().equalsIgnoreCase(Constants.
                    SITE_WISE_CACHED_VIDEO_AGE_OUT_ON_EDGE_MEASUREMENT_NAME)) {
                edgeConnectorForKVSConfiguration.setCachedVideoAgeOutOnEdgePropertyId(assetProperty.id());
            }
            if (assetProperty.name()
                    .equalsIgnoreCase(Constants.SITE_WISE_VIDEO_UPLOAD_REQUEST_MEASUREMENT_NAME)) {
                if (assetProperty.notification().state() == PropertyNotificationState.ENABLED) {
                    edgeConnectorForKVSConfiguration.setVideoUploadRequestMqttTopic(
                            assetProperty.notification().topic());
                } else {
                    log.warn("Video Upload Request MQTT Notification Disabled for Asset Id " + cameraSiteWiseAssetId);
                }
            }
        }
        return edgeConnectorForKVSConfiguration;
    }