Rule chain refactoring

This commit is contained in:
Volodymyr Babak 2020-05-15 19:36:32 +03:00
parent 1a084a80f8
commit 31a1e310f1
4 changed files with 17 additions and 19 deletions

View File

@ -135,15 +135,15 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
if (this.assignedEdges == null) {
this.assignedEdges = new HashSet<>();
}
return EdgeUtils.addAssignedEdge(this.assignedEdges, edge);
return EdgeUtils.addAssignedEdge(this.assignedEdges, edge.toShortEdgeInfo());
}
public boolean updateAssignedEdge(Edge edge) {
return EdgeUtils.updateAssignedEdge(this.assignedEdges, edge);
return EdgeUtils.updateAssignedEdge(this.assignedEdges, edge.toShortEdgeInfo());
}
public boolean removeAssignedEdge(Edge edge) {
return EdgeUtils.removeAssignedEdge(this.assignedEdges, edge);
return EdgeUtils.removeAssignedEdge(this.assignedEdges, edge.toShortEdgeInfo());
}
@Override

View File

@ -1,13 +1,13 @@
package org.thingsboard.server.common.data;
import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.id.EdgeId;
import java.util.Set;
public final class EdgeUtils {
private EdgeUtils() {}
private EdgeUtils() {
}
public static boolean isAssignedToEdge(Set<ShortEdgeInfo> assignedEdges, EdgeId edgeId) {
return assignedEdges != null && assignedEdges.contains(new ShortEdgeInfo(edgeId, null, null));
@ -24,8 +24,7 @@ public final class EdgeUtils {
return null;
}
public static boolean addAssignedEdge(Set<ShortEdgeInfo> assignedEdges, Edge edge) {
ShortEdgeInfo edgeInfo = edge.toShortEdgeInfo();
public static boolean addAssignedEdge(Set<ShortEdgeInfo> assignedEdges, ShortEdgeInfo edgeInfo) {
if (assignedEdges != null && assignedEdges.contains(edgeInfo)) {
return false;
} else {
@ -38,8 +37,7 @@ public final class EdgeUtils {
}
}
public static boolean updateAssignedEdge(Set<ShortEdgeInfo> assignedEdges, Edge edge) {
ShortEdgeInfo edgeInfo = edge.toShortEdgeInfo();
public static boolean updateAssignedEdge(Set<ShortEdgeInfo> assignedEdges, ShortEdgeInfo edgeInfo) {
if (assignedEdges != null && assignedEdges.contains(edgeInfo)) {
assignedEdges.remove(edgeInfo);
assignedEdges.add(edgeInfo);
@ -49,8 +47,7 @@ public final class EdgeUtils {
}
}
public static boolean removeAssignedEdge(Set<ShortEdgeInfo> assignedEdges, Edge edge) {
ShortEdgeInfo edgeInfo = edge.toShortEdgeInfo();
public static boolean removeAssignedEdge(Set<ShortEdgeInfo> assignedEdges, ShortEdgeInfo edgeInfo) {
if (assignedEdges != null && assignedEdges.contains(edgeInfo)) {
assignedEdges.remove(edgeInfo);
return true;

View File

@ -104,14 +104,14 @@ public class RuleChain extends SearchTextBasedWithAdditionalInfo<RuleChainId> im
if (this.assignedEdges == null) {
this.assignedEdges = new HashSet<>();
}
return EdgeUtils.addAssignedEdge(this.assignedEdges, edge);
return EdgeUtils.addAssignedEdge(this.assignedEdges, edge.toShortEdgeInfo());
}
public boolean updateAssignedEdge(Edge edge) {
return EdgeUtils.updateAssignedEdge(this.assignedEdges, edge);
return EdgeUtils.updateAssignedEdge(this.assignedEdges, edge.toShortEdgeInfo());
}
public boolean removeAssignedEdge(Edge edge) {
return EdgeUtils.removeAssignedEdge(this.assignedEdges, edge);
return EdgeUtils.removeAssignedEdge(this.assignedEdges, edge.toShortEdgeInfo());
}
}

View File

@ -46,6 +46,7 @@ import org.thingsboard.server.common.data.rule.RuleChainMetaData;
import org.thingsboard.server.common.data.rule.RuleChainType;
import org.thingsboard.server.common.data.rule.RuleNode;
import org.thingsboard.server.dao.edge.EdgeDao;
import org.thingsboard.server.dao.edge.EdgeService;
import org.thingsboard.server.dao.entity.AbstractEntityService;
import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.service.DataValidator;
@ -78,7 +79,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
private TenantDao tenantDao;
@Autowired
private EdgeDao edgeDao;
private EdgeService edgeService;
@Override
public RuleChain saveRuleChain(RuleChain ruleChain) {
@ -395,7 +396,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
public RuleChain assignRuleChainToEdge(TenantId tenantId, RuleChainId ruleChainId, EdgeId edgeId) {
RuleChain ruleChain = findRuleChainById(tenantId, ruleChainId);
Edge edge = edgeDao.findById(tenantId, edgeId.getId());
Edge edge = edgeService.findEdgeById(tenantId, edgeId);
if (edge == null) {
throw new DataValidationException("Can't assign ruleChain to non-existent edge!");
}
@ -417,7 +418,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
public RuleChain unassignRuleChainFromEdge(TenantId tenantId, RuleChainId ruleChainId, EdgeId edgeId, boolean remove) {
RuleChain ruleChain = findRuleChainById(tenantId, ruleChainId);
Edge edge = edgeDao.findById(tenantId, edgeId.getId());
Edge edge = edgeService.findEdgeById(tenantId, edgeId);
if (edge == null) {
throw new DataValidationException("Can't unassign rule chain from non-existent edge!");
}
@ -441,7 +442,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
public void unassignEdgeRuleChains(TenantId tenantId, EdgeId edgeId) {
log.trace("Executing unassignEdgeRuleChains, edgeId [{}]", edgeId);
Validator.validateId(edgeId, "Incorrect edgeId " + edgeId);
Edge edge = edgeDao.findById(tenantId, edgeId.getId());
Edge edge = edgeService.findEdgeById(tenantId, edgeId);
if (edge == null) {
throw new DataValidationException("Can't unassign ruleChains from non-existent edge!");
}
@ -452,7 +453,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
public void updateEdgeRuleChains(TenantId tenantId, EdgeId edgeId) {
log.trace("Executing updateEdgeRuleChains, edgeId [{}]", edgeId);
Validator.validateId(edgeId, "Incorrect edgeId " + edgeId);
Edge edge = edgeDao.findById(tenantId, edgeId.getId());
Edge edge = edgeService.findEdgeById(tenantId, edgeId);
if (edge == null) {
throw new DataValidationException("Can't update ruleChains for non-existent edge!");
}