All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.huaweicloud.sdk.iot.device.client.handler.ShadowHandler Maven / Gradle / Ivy

package com.huaweicloud.sdk.iot.device.client.handler;

import com.huaweicloud.sdk.iot.device.client.DeviceClient;
import com.huaweicloud.sdk.iot.device.client.requests.Shadow;
import com.huaweicloud.sdk.iot.device.transport.RawMessage;
import com.huaweicloud.sdk.iot.device.utils.IotUtil;
import com.huaweicloud.sdk.iot.device.utils.JsonUtil;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class ShadowHandler implements MessageReceivedHandler {
    private static final Logger log = LogManager.getLogger(ShadowHandler.class);

    private final DeviceClient deviceClient;

    public ShadowHandler(DeviceClient deviceClient) {
        this.deviceClient = deviceClient;
    }

    @Override
    public void messageHandler(RawMessage message) {
        String topic = message.getTopic();
        String requestId = IotUtil.getRequestId(topic);

        final Shadow shadow = JsonUtil.convertJsonStringToObject(message.toString(), Shadow.class);
        if (shadow == null) {
            log.warn("invalid shadow");
            return;
        }

        if (deviceClient.getShadowListener() != null && (shadow.getDeviceId() == null || shadow.getDeviceId()
            .equals(deviceClient.getDeviceId()))) {
            deviceClient.getShadowListener().onShadow(requestId, shadow.getShadow());
            return;
        }

        deviceClient.getDevice().onShadow(requestId, shadow);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy