Browse Source

Fix export/import of deprecated dashboards

pull/6845/head
Viacheslav Klimov 4 years ago
parent
commit
4d1a82d50b
  1. 21
      common/data/src/main/java/org/thingsboard/server/common/data/Dashboard.java

21
common/data/src/main/java/org/thingsboard/server/common/data/Dashboard.java

@ -17,19 +17,18 @@ package org.thingsboard.server.common.data;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.collect.Streams;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.DashboardId;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.StreamSupport; import java.util.stream.Collectors;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class Dashboard extends DashboardInfo implements ExportableEntity<DashboardId> { public class Dashboard extends DashboardInfo implements ExportableEntity<DashboardId> {
@ -86,17 +85,11 @@ public class Dashboard extends DashboardInfo implements ExportableEntity<Dashboa
private List<ObjectNode> getChildObjects(String propertyName) { private List<ObjectNode> getChildObjects(String propertyName) {
return Optional.ofNullable(configuration) return Optional.ofNullable(configuration)
.map(config -> config.get(propertyName)) .map(config -> config.get(propertyName))
.filter(node -> !node.isEmpty()) .filter(node -> !node.isEmpty() && (node.isObject() || node.isArray()))
.map(node -> (ObjectNode) node) .map(node -> Streams.stream(node.elements())
.map(object -> { .filter(JsonNode::isObject)
List<ObjectNode> widgets = new ArrayList<>(object.size()); .map(jsonNode -> (ObjectNode) jsonNode)
object.forEach(child -> { .collect(Collectors.toList()))
if (child.isObject()) {
widgets.add((ObjectNode) child);
}
});
return widgets;
})
.orElse(Collections.emptyList()); .orElse(Collections.emptyList());
} }

Loading…
Cancel
Save