2017-11-22 17:30:56 +01:00
|
|
|
package de.hottis.smarthomelib;
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
|
|
import org.apache.logging.log4j.Logger;
|
|
|
|
|
|
|
|
public abstract class ADataObject implements Serializable {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
final protected Logger logger = LogManager.getRootLogger();
|
|
|
|
|
|
|
|
private LocalDateTime timestamp;
|
|
|
|
private String name;
|
|
|
|
private Map<String, Object> values;
|
|
|
|
|
|
|
|
public ADataObject(LocalDateTime timestamp, String name) {
|
|
|
|
this.timestamp = timestamp;
|
|
|
|
this.name = name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setValues(Map<String, Object> values) {
|
|
|
|
this.values = values;
|
|
|
|
}
|
|
|
|
|
|
|
|
abstract public String getTableName();
|
|
|
|
|
|
|
|
public LocalDateTime getTimestamp() {
|
|
|
|
return timestamp;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Map<String, Object> getValues() {
|
|
|
|
return values;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
StringBuffer sb = new StringBuffer();
|
2018-06-11 17:31:41 +02:00
|
|
|
sb.append("{\"name\":\"");
|
|
|
|
sb.append(name);
|
|
|
|
sb.append("\", \"ts\":\"");
|
|
|
|
sb.append(timestamp);
|
|
|
|
sb.append("Z\", \"values\":{");
|
|
|
|
boolean first = true;
|
|
|
|
for (Map.Entry<String, Object> entry : values.entrySet()) {
|
|
|
|
if (! first) {
|
|
|
|
sb.append(", ");
|
|
|
|
} else {
|
|
|
|
first = false;
|
|
|
|
}
|
|
|
|
sb.append("\"");
|
|
|
|
sb.append(entry.getKey());
|
|
|
|
sb.append("\":");
|
|
|
|
Object value = entry.getValue();
|
|
|
|
if (! (value instanceof Double)) {
|
|
|
|
sb.append("\"");
|
|
|
|
}
|
|
|
|
sb.append(value);
|
|
|
|
if (! (value instanceof Double)) {
|
|
|
|
sb.append("\"");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sb.append("}}");
|
|
|
|
/*
|
|
|
|
sb.append("<");
|
2017-11-22 17:30:56 +01:00
|
|
|
sb.append(name);
|
|
|
|
sb.append(", ");
|
|
|
|
sb.append(timestamp);
|
|
|
|
sb.append(", ");
|
|
|
|
sb.append(values.toString());
|
|
|
|
sb.append(">");
|
2018-06-11 17:31:41 +02:00
|
|
|
*/
|
2017-11-22 17:30:56 +01:00
|
|
|
return sb.toString();
|
|
|
|
}
|
|
|
|
}
|