Browse Source

refactor code

pull/7598/head
Yuriy Lytvynchuk 4 years ago
parent
commit
f49b349396
  1. 41
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/util/EntitiesByNameAndTypeLoader.java

41
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/util/EntitiesByNameAndTypeLoader.java

@ -16,60 +16,37 @@
package org.thingsboard.rule.engine.util;
import org.thingsboard.rule.engine.api.TbContext;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.SearchTextBasedWithAdditionalInfo;
import org.thingsboard.server.common.data.id.EntityId;
import java.util.Optional;
public class EntitiesByNameAndTypeLoader {
public static EntityId findEntityId(TbContext ctx, EntityType entityType, String entityName) {
EntityId targetEntityId = null;
SearchTextBasedWithAdditionalInfo<? extends EntityId> targetEntity;
switch (entityType) {
case DEVICE:
Device device = ctx.getDeviceService().findDeviceByTenantIdAndName(ctx.getTenantId(), entityName);
if (device != null) {
targetEntityId = device.getId();
}
targetEntity = ctx.getDeviceService().findDeviceByTenantIdAndName(ctx.getTenantId(), entityName);
break;
case ASSET:
Asset asset = ctx.getAssetService().findAssetByTenantIdAndName(ctx.getTenantId(), entityName);
if (asset != null) {
targetEntityId = asset.getId();
}
targetEntity = ctx.getAssetService().findAssetByTenantIdAndName(ctx.getTenantId(), entityName);
break;
case ENTITY_VIEW:
EntityView entityView = ctx.getEntityViewService().findEntityViewByTenantIdAndName(ctx.getTenantId(), entityName);
if (entityView != null) {
targetEntityId = entityView.getId();
}
targetEntity = ctx.getEntityViewService().findEntityViewByTenantIdAndName(ctx.getTenantId(), entityName);
break;
case EDGE:
Edge edge = ctx.getEdgeService().findEdgeByTenantIdAndName(ctx.getTenantId(), entityName);
if (edge != null) {
targetEntityId = edge.getId();
}
targetEntity = ctx.getEdgeService().findEdgeByTenantIdAndName(ctx.getTenantId(), entityName);
break;
case USER:
User user = ctx.getUserService().findUserByTenantIdAndEmail(ctx.getTenantId(), entityName);
if (user != null) {
targetEntityId = user.getId();
}
targetEntity = ctx.getUserService().findUserByTenantIdAndEmail(ctx.getTenantId(), entityName);
break;
default:
throw new IllegalStateException("Unexpected entity type " + entityType.name());
}
if (targetEntityId == null) {
if (targetEntity == null) {
throw new IllegalStateException("Failed to found " + entityType.name() + " entity by name: '" + entityName + "'!");
}
return targetEntityId;
return targetEntity.getId();
}
}

Loading…
Cancel
Save