2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.asuswrt.internal.structures;
15 import static org.openhab.binding.asuswrt.internal.constants.AsuswrtBindingConstants.*;
16 import static org.openhab.binding.asuswrt.internal.constants.AsuswrtBindingSettings.INTERFACE_CLIENT;
17 import static org.openhab.binding.asuswrt.internal.helpers.AsuswrtUtils.*;
19 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import com.google.gson.JsonObject;
24 * The {@link AsuswrtClientInfo} class stores client data.
26 * @author Christian Wild - Initial contribution
29 public class AsuswrtClientInfo {
30 private AsuswrtTraffic traffic = new AsuswrtTraffic();
31 private Integer defaultType = 0;
32 private String dpiDevice = "";
33 private String dpiType = "";
34 private String from = "";
35 private String group = "";
36 private String internetMode = "";
37 private Boolean internetState = false;
38 private String ip = "";
39 private String ipMethod = "";
40 private Boolean isGateway = false;
41 private Boolean isGN = false;
42 private Boolean isITunes = false;
43 private Boolean isLogin = false;
44 private Boolean isOnline = false;
45 private Boolean isPrinter = false;
46 private Boolean isWebServer = false;
47 private Integer isWL = 0;
48 private String keeparp = "";
49 private String mac = "";
50 private Boolean macRepeat = false;
51 private String name = "";
52 private String nickName = "";
53 private Integer opMode = 0;
54 private String qosLevel = "";
55 private Integer rog = 0;
56 private Integer rssi = 0;
57 private String ssid = "";
58 private String vendor = "";
59 private String wlConnectTime = "";
60 private Integer wtfast = 0;
62 public AsuswrtClientInfo() {
65 public AsuswrtClientInfo(JsonObject jsonObject) {
66 traffic = new AsuswrtTraffic(INTERFACE_CLIENT);
70 public void setData(JsonObject jsonObject) {
71 traffic.setData(jsonObject);
72 defaultType = jsonObjectToInt(jsonObject, JSON_MEMBER_CLIENT_DEFTYPE, defaultType);
73 dpiDevice = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_DPIDEVICE, dpiDevice);
74 dpiType = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_DPITYPE, dpiType);
75 from = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_IPFROM, from);
76 group = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_GROUP, group);
77 internetMode = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_INETMODE, internetMode);
78 internetState = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_INETSTATE, internetState);
79 ip = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_IP, ip);
80 ipMethod = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_IPMETHOD, ipMethod);
81 isGateway = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_IPGATEWAY, isGateway);
82 isGN = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_GN, isGN);
83 isITunes = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_ITUNES, isITunes);
84 isLogin = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_LOGIN, isLogin);
85 isOnline = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_ONLINE, isOnline);
86 isPrinter = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_PRINTER, isPrinter);
87 isWebServer = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_WEBSRV, isWebServer);
88 isWL = jsonObjectToInt(jsonObject, JSON_MEMBER_CLIENT_WIFI, isWL);
89 keeparp = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_KEEPARP, keeparp);
90 mac = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_MAC, mac);
91 macRepeat = jsonObjectToBool(jsonObject, JSON_MEMBER_CLIENT_MACREPEAT, macRepeat);
92 name = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_NAME, name);
93 nickName = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_NICK, nickName);
94 opMode = jsonObjectToInt(jsonObject, JSON_MEMBER_CLIENT_MODE, opMode);
95 qosLevel = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_QOSLVL, qosLevel);
96 rog = jsonObjectToInt(jsonObject, JSON_MEMBER_CLIENT_ROG, rog);
97 rssi = jsonObjectToInt(jsonObject, JSON_MEMBER_CLIENT_RSSI, rssi);
98 ssid = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_SSID, ssid);
99 vendor = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_VENDOR, vendor);
100 wlConnectTime = jsonObjectToString(jsonObject, JSON_MEMBER_CLIENT_CONNECTTIME, wlConnectTime);
101 wtfast = jsonObjectToInt(jsonObject, JSON_MEMBER_CLIENT_WTFAST, wtfast);
108 public AsuswrtTraffic getTraffic() {
112 public Integer getDefaultType() {
116 public String getDpiDevice() {
120 public String getDpiType() {
124 public String getIpFrom() {
128 public String getGroup() {
132 public String getInternetMode() {
136 public Boolean getInternetState() {
137 return internetState;
140 public String getIP() {
144 public String getIpMethod() {
148 public Boolean isGateway() {
152 public Boolean isGN() {
156 public Boolean isITunes() {
160 public Boolean isLogin() {
164 public Boolean isOnline() {
168 public Boolean isPrinter() {
172 public Boolean isWebServer() {
176 public Integer isWL() {
180 public Boolean isWiFiConnected() {
184 public String getKeepArp() {
188 public String getMac() {
192 public Boolean getMacRepeat() {
196 public String getName() {
200 public String getNickName() {
204 public Integer getOpMode() {
208 public String getQosLevel() {
212 public Integer getROG() {
216 public Integer getRSSI() {
220 public String getSSID() {
224 public String getVendor() {
228 public String getWlanConnectTime() {
229 return wlConnectTime;
232 public Integer getWtFast() {