81 lines
2.1 KiB
Java
Raw Normal View History

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();
}
}