DeviceStatusImpl.java 1.67 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.cq.screens.device.impl;

import com.adobe.cq.screens.device.DeviceStatus;

public class DeviceStatusImpl
implements DeviceStatus {
    private DeviceStatus.Ping ping = PingImpl.NEVER;
    private DeviceStatus.Firmware firmware = FirmwareImpl.UNKNOWN;

    @Override
    public DeviceStatus.Ping getLastPing() {
        return this.ping;
    }

    public DeviceStatusImpl updatePing(long time) {
        this.ping = new PingImpl(time);
        return this;
    }

    @Override
    public DeviceStatus.Firmware getFirmware() {
        return this.firmware;
    }

    public DeviceStatusImpl updateFirmwareVersion(String version, long timestamp) {
        this.firmware = new FirmwareImpl(version, timestamp);
        return this;
    }

    public static class FirmwareImpl
    implements DeviceStatus.Firmware {
        static DeviceStatus.Firmware UNKNOWN = new FirmwareImpl("", 0);
        private final String version;
        private final long timestamp;

        public FirmwareImpl(String version, long timestamp) {
            this.version = version;
            this.timestamp = timestamp;
        }

        @Override
        public String getVersion() {
            return this.version;
        }

        @Override
        public long getLastUpdated() {
            return this.timestamp;
        }
    }

    public static class PingImpl
    implements DeviceStatus.Ping {
        static DeviceStatus.Ping NEVER = new PingImpl(0);
        private final long time;

        public PingImpl(long time) {
            this.time = time;
        }

        @Override
        public long getTime() {
            return this.time;
        }
    }

}