Skip to content

Commit

Permalink
Fix the missing generic params. (#4560)
Browse files Browse the repository at this point in the history
Co-authored-by: Derek Vince <[email protected]>
  • Loading branch information
kbirk and dvince2 authored Aug 26, 2024
1 parent 26e4d09 commit 5a87727
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class Workflow extends TerariumAsset {

@Type(JsonType.class)
@Column(columnDefinition = "json")
private List<WorkflowNode> nodes;
private List<WorkflowNode<?>> nodes;

@Type(JsonType.class)
@Column(columnDefinition = "json")
Expand All @@ -52,8 +52,8 @@ public Workflow clone() {
final Map<UUID, UUID> oldToNew = new HashMap<>();

clone.setNodes(new ArrayList<>());
for (final WorkflowNode node : nodes) {
final WorkflowNode clonedNode = node.clone(clone.getId());
for (final WorkflowNode<?> node : nodes) {
final WorkflowNode<?> clonedNode = node.clone(clone.getId());
oldToNew.put(node.getId(), clonedNode.getId());
clone.getNodes().add(clonedNode);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import software.uncharted.terarium.hmiserver.annotations.TSIgnore;
import software.uncharted.terarium.hmiserver.annotations.TSModel;
import software.uncharted.terarium.hmiserver.annotations.TSOptional;
import software.uncharted.terarium.hmiserver.models.SupportAdditionalProperties;

Expand Down Expand Up @@ -51,8 +50,8 @@ public class WorkflowNode<T> extends SupportAdditionalProperties implements Seri

private String status;

public WorkflowNode clone(final UUID workflowId) {
final WorkflowNode clone = (WorkflowNode) super.clone();
public WorkflowNode<?> clone(final UUID workflowId) {
final WorkflowNode<?> clone = (WorkflowNode<?>) super.clone();
clone.setId(UUID.randomUUID());
clone.setWorkflowId(workflowId);
return clone;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import io.micrometer.observation.annotation.Observed;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
Expand Down Expand Up @@ -56,7 +57,7 @@ public Workflow createAsset(final Workflow asset, final UUID projectId, final Sc
throws IOException, IllegalArgumentException {
// ensure the workflow id is set correctly
if (asset.getNodes() != null) {
for (final WorkflowNode node : asset.getNodes()) {
for (final WorkflowNode<?> node : asset.getNodes()) {
node.setWorkflowId(asset.getId());
}
}
Expand All @@ -78,17 +79,17 @@ public Optional<Workflow> updateAsset(
// Fetch database copy, we will update into it
final Workflow dbWorkflow = getAsset(asset.getId(), hasWritePermission).get();

final List<WorkflowNode> dbWorkflowNodes = dbWorkflow.getNodes();
final List<WorkflowEdge> dbWorkflowEdges = dbWorkflow.getEdges();
final Map<UUID, WorkflowNode> nodeMap = new HashMap();
final Map<UUID, WorkflowEdge> edgeMap = new HashMap();
List<WorkflowNode<?>> dbWorkflowNodes = dbWorkflow.getNodes();
List<WorkflowEdge> dbWorkflowEdges = dbWorkflow.getEdges();
final Map<UUID, WorkflowNode<?>> nodeMap = new HashMap<>();
final Map<UUID, WorkflowEdge> edgeMap = new HashMap<>();

dbWorkflow.setName(asset.getName());
dbWorkflow.setDescription(asset.getDescription());

// Prep: sane state, cache the nodes/edges to update for easy retrival
if (asset.getNodes() != null) {
for (final WorkflowNode node : asset.getNodes()) {
for (final WorkflowNode<?> node : asset.getNodes()) {
node.setWorkflowId(asset.getId());
if (node.getVersion() == null) {
node.setVersion(1L);
Expand All @@ -111,8 +112,8 @@ public Optional<Workflow> updateAsset(
////////////////////////////////////////////////////////////////////////////////
if (dbWorkflowNodes != null && dbWorkflowNodes.size() > 0) {
for (int index = 0; index < dbWorkflowNodes.size(); index++) {
final WorkflowNode dbNode = dbWorkflowNodes.get(index);
final WorkflowNode node = nodeMap.get(dbNode.getId());
final WorkflowNode<?> dbNode = dbWorkflowNodes.get(index);
final WorkflowNode<?> node = nodeMap.get(dbNode.getId());

if (node == null) continue;
if (node.getIsDeleted()) {
Expand All @@ -129,7 +130,8 @@ public Optional<Workflow> updateAsset(
continue;
}

// FIXME: backwards compatibility for older workflows, remove in a few month. Aug 2024
// FIXME: backwards compatibility for older workflows, remove in a few month.
// Aug 2024
if (dbNode.getVersion() == null) {
dbNode.setVersion(1L);
continue;
Expand Down Expand Up @@ -165,7 +167,8 @@ public Optional<Workflow> updateAsset(
continue;
}

// FIXME: backwards compatibility for older workflows, remove in a few month. Aug 2024
// FIXME: backwards compatibility for older workflows, remove in a few month.
// Aug 2024
if (dbEdge.getVersion() == null) {
dbEdge.setVersion(1L);
}
Expand All @@ -183,9 +186,16 @@ public Optional<Workflow> updateAsset(
////////////////////////////////////////////////////////////////////////////////
// Handle new nodes or edges
////////////////////////////////////////////////////////////////////////////////
for (final Map.Entry<UUID, WorkflowNode> pair : nodeMap.entrySet()) {
if (dbWorkflowNodes == null) {
dbWorkflowNodes = new ArrayList<>();
}
for (final Map.Entry<UUID, WorkflowNode<?>> pair : nodeMap.entrySet()) {
dbWorkflowNodes.add(pair.getValue());
}

if (dbWorkflowEdges == null) {
dbWorkflowEdges = new ArrayList<>();
}
for (final Map.Entry<UUID, WorkflowEdge> pair : edgeMap.entrySet()) {
dbWorkflowEdges.add(pair.getValue());
}
Expand Down

0 comments on commit 5a87727

Please sign in to comment.