From 45479a79f9a9d17895c930e36553f372aeb4110b Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Wed, 10 Jun 2020 18:08:22 +0300 Subject: [PATCH] Basic Structures --- .../DefaultTelemetryWebSocketService.java | 10 ++--- .../cmd/TelemetryPluginCmdsWrapper.java | 37 ++++++------------- .../{ => v1}/AttributesSubscriptionCmd.java | 2 +- .../telemetry/cmd/{ => v1}/GetHistoryCmd.java | 2 +- .../cmd/{ => v1}/SubscriptionCmd.java | 2 +- .../cmd/{ => v1}/TelemetryPluginCmd.java | 2 +- .../{ => v1}/TimeseriesSubscriptionCmd.java | 2 +- .../telemetry/cmd/v2/EntityDataCmd.java | 15 ++++++++ .../cmd/v2/EntityDataUnsubscribeCmd.java | 10 +++++ .../telemetry/cmd/v2/EntityDataUpdate.java | 17 +++++++++ .../telemetry/cmd/v2/EntityHistoryCmd.java | 16 ++++++++ .../telemetry/cmd/v2/LatestValueCmd.java | 11 ++++++ .../telemetry/cmd/v2/TimeSeriesCmd.java | 14 +++++++ .../server/dao/entity/EntityService.java | 10 ++++- .../common/data/query/EntityCountQuery.java | 13 +++++++ .../server/common/data/query/EntityData.java | 15 ++++++++ .../common/data/query/EntityDataPageLink.java | 13 +++++++ .../common/data/query/EntityDataQuery.java | 22 +++++++++++ .../common/data/query/EntityFilter.java | 6 +++ .../common/data/query/EntityFilterType.java | 21 +++++++++++ .../server/common/data/query/EntityKey.java | 6 +++ .../common/data/query/EntityKeyType.java | 9 +++++ .../common/data/query/SingleEntityFilter.java | 15 ++++++++ .../server/common/data/query/TsValue.java | 10 +++++ .../server/dao/entity/BaseEntityService.java | 6 +++ 25 files changed, 249 insertions(+), 37 deletions(-) rename application/src/main/java/org/thingsboard/server/service/telemetry/cmd/{ => v1}/AttributesSubscriptionCmd.java (94%) rename application/src/main/java/org/thingsboard/server/service/telemetry/cmd/{ => v1}/GetHistoryCmd.java (94%) rename application/src/main/java/org/thingsboard/server/service/telemetry/cmd/{ => v1}/SubscriptionCmd.java (95%) rename application/src/main/java/org/thingsboard/server/service/telemetry/cmd/{ => v1}/TelemetryPluginCmd.java (93%) rename application/src/main/java/org/thingsboard/server/service/telemetry/cmd/{ => v1}/TimeseriesSubscriptionCmd.java (95%) create mode 100644 application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataCmd.java create mode 100644 application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUnsubscribeCmd.java create mode 100644 application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUpdate.java create mode 100644 application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityHistoryCmd.java create mode 100644 application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/LatestValueCmd.java create mode 100644 application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/TimeSeriesCmd.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityCountQuery.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataPageLink.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataQuery.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilter.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilterType.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKey.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKeyType.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/SingleEntityFilter.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/query/TsValue.java diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetryWebSocketService.java b/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetryWebSocketService.java index d6d9a6d070..cfc6d45f0d 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetryWebSocketService.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetryWebSocketService.java @@ -55,12 +55,12 @@ import org.thingsboard.server.service.subscription.TbLocalSubscriptionService; import org.thingsboard.server.service.subscription.TbAttributeSubscriptionScope; import org.thingsboard.server.service.subscription.TbAttributeSubscription; import org.thingsboard.server.service.subscription.TbTimeseriesSubscription; -import org.thingsboard.server.service.telemetry.cmd.AttributesSubscriptionCmd; -import org.thingsboard.server.service.telemetry.cmd.GetHistoryCmd; -import org.thingsboard.server.service.telemetry.cmd.SubscriptionCmd; -import org.thingsboard.server.service.telemetry.cmd.TelemetryPluginCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.AttributesSubscriptionCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.GetHistoryCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.SubscriptionCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.TelemetryPluginCmd; import org.thingsboard.server.service.telemetry.cmd.TelemetryPluginCmdsWrapper; -import org.thingsboard.server.service.telemetry.cmd.TimeseriesSubscriptionCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.TimeseriesSubscriptionCmd; import org.thingsboard.server.service.telemetry.exception.UnauthorizedException; import org.thingsboard.server.service.telemetry.sub.SubscriptionErrorCode; import org.thingsboard.server.service.telemetry.sub.SubscriptionUpdate; diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmdsWrapper.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmdsWrapper.java index ae7f27fc9f..c9934e1267 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmdsWrapper.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmdsWrapper.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -15,11 +15,19 @@ */ package org.thingsboard.server.service.telemetry.cmd; +import lombok.Data; +import org.thingsboard.server.service.telemetry.cmd.v1.AttributesSubscriptionCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.GetHistoryCmd; +import org.thingsboard.server.service.telemetry.cmd.v1.TimeseriesSubscriptionCmd; +import org.thingsboard.server.service.telemetry.cmd.v2.EntityDataCmd; +import org.thingsboard.server.service.telemetry.cmd.v2.EntityDataUnsubscribeCmd; + import java.util.List; /** * @author Andrew Shvayka */ +@Data public class TelemetryPluginCmdsWrapper { private List attrSubCmds; @@ -28,31 +36,8 @@ public class TelemetryPluginCmdsWrapper { private List historyCmds; - public TelemetryPluginCmdsWrapper() { - super(); - } + private List entityDataCmds; - public List getAttrSubCmds() { - return attrSubCmds; - } + private List entityDataUnsubscribeCmds; - public void setAttrSubCmds(List attrSubCmds) { - this.attrSubCmds = attrSubCmds; - } - - public List getTsSubCmds() { - return tsSubCmds; - } - - public void setTsSubCmds(List tsSubCmds) { - this.tsSubCmds = tsSubCmds; - } - - public List getHistoryCmds() { - return historyCmds; - } - - public void setHistoryCmds(List historyCmds) { - this.historyCmds = historyCmds; - } } diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/AttributesSubscriptionCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/AttributesSubscriptionCmd.java similarity index 94% rename from application/src/main/java/org/thingsboard/server/service/telemetry/cmd/AttributesSubscriptionCmd.java rename to application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/AttributesSubscriptionCmd.java index 198ba31765..ef911e337e 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/AttributesSubscriptionCmd.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/AttributesSubscriptionCmd.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.telemetry.cmd; +package org.thingsboard.server.service.telemetry.cmd.v1; import lombok.NoArgsConstructor; import org.thingsboard.server.service.telemetry.TelemetryFeature; diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/GetHistoryCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/GetHistoryCmd.java similarity index 94% rename from application/src/main/java/org/thingsboard/server/service/telemetry/cmd/GetHistoryCmd.java rename to application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/GetHistoryCmd.java index 6a410b53ce..60799ae93c 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/GetHistoryCmd.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/GetHistoryCmd.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.telemetry.cmd; +package org.thingsboard.server.service.telemetry.cmd.v1; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/SubscriptionCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/SubscriptionCmd.java similarity index 95% rename from application/src/main/java/org/thingsboard/server/service/telemetry/cmd/SubscriptionCmd.java rename to application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/SubscriptionCmd.java index 4ff4750178..c8da00f088 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/SubscriptionCmd.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/SubscriptionCmd.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.telemetry.cmd; +package org.thingsboard.server.service.telemetry.cmd.v1; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/TelemetryPluginCmd.java similarity index 93% rename from application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmd.java rename to application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/TelemetryPluginCmd.java index af2d1af3bb..94968fa1a1 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TelemetryPluginCmd.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/TelemetryPluginCmd.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.telemetry.cmd; +package org.thingsboard.server.service.telemetry.cmd.v1; /** * @author Andrew Shvayka diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TimeseriesSubscriptionCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/TimeseriesSubscriptionCmd.java similarity index 95% rename from application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TimeseriesSubscriptionCmd.java rename to application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/TimeseriesSubscriptionCmd.java index f85e08880b..7237a7645e 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/TimeseriesSubscriptionCmd.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v1/TimeseriesSubscriptionCmd.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.telemetry.cmd; +package org.thingsboard.server.service.telemetry.cmd.v1; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataCmd.java new file mode 100644 index 0000000000..a1dce96c26 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataCmd.java @@ -0,0 +1,15 @@ +package org.thingsboard.server.service.telemetry.cmd.v2; + +import lombok.Data; +import org.thingsboard.server.common.data.query.EntityDataQuery; + +@Data +public class EntityDataCmd { + + private final int cmdId; + private final EntityDataQuery query; + private final EntityHistoryCmd historyCmd; + private final LatestValueCmd latestCmd; + private final TimeSeriesCmd tsCmd; + +} diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUnsubscribeCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUnsubscribeCmd.java new file mode 100644 index 0000000000..2df94a5b56 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUnsubscribeCmd.java @@ -0,0 +1,10 @@ +package org.thingsboard.server.service.telemetry.cmd.v2; + +import lombok.Data; + +@Data +public class EntityDataUnsubscribeCmd { + + private final int cmdId; + +} diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUpdate.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUpdate.java new file mode 100644 index 0000000000..76c569dc70 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityDataUpdate.java @@ -0,0 +1,17 @@ +package org.thingsboard.server.service.telemetry.cmd.v2; + +import lombok.Data; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.query.EntityData; + +import java.util.List; + +@Data +public class EntityDataUpdate { + + private final int cmdId; + private final PageData data; + private final List update; + private int errorCode; + private String errorMsg; +} diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityHistoryCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityHistoryCmd.java new file mode 100644 index 0000000000..9bfffe542b --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/EntityHistoryCmd.java @@ -0,0 +1,16 @@ +package org.thingsboard.server.service.telemetry.cmd.v2; + +import org.thingsboard.server.common.data.kv.Aggregation; + +import java.util.List; + +public class EntityHistoryCmd { + + private List keys; + private long startTs; + private long endTs; + private long interval; + private int limit; + private Aggregation agg; + +} diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/LatestValueCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/LatestValueCmd.java new file mode 100644 index 0000000000..cdb200dff5 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/LatestValueCmd.java @@ -0,0 +1,11 @@ +package org.thingsboard.server.service.telemetry.cmd.v2; + +import org.thingsboard.server.common.data.query.EntityKey; + +import java.util.List; + +public class LatestValueCmd { + + private List keys; + +} diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/TimeSeriesCmd.java b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/TimeSeriesCmd.java new file mode 100644 index 0000000000..3d76fdebea --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/cmd/v2/TimeSeriesCmd.java @@ -0,0 +1,14 @@ +package org.thingsboard.server.service.telemetry.cmd.v2; + +import java.util.List; + +public class TimeSeriesCmd { + + private List keys; + private long startTs; + private long timeWindow; + private long interval; + private int limit; + private String agg; + +} diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java index 9e9c9359c5..4b5e5a8310 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -18,6 +18,10 @@ package org.thingsboard.server.dao.entity; import com.google.common.util.concurrent.ListenableFuture; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.query.EntityCountQuery; +import org.thingsboard.server.common.data.query.EntityData; +import org.thingsboard.server.common.data.query.EntityDataQuery; public interface EntityService { @@ -25,4 +29,8 @@ public interface EntityService { void deleteEntityRelations(TenantId tenantId, EntityId entityId); + long countEntitiesByQuery(TenantId tenantId, EntityCountQuery query); + + PageData findEntityDataByQuery(TenantId tenantId, EntityDataQuery query); + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityCountQuery.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityCountQuery.java new file mode 100644 index 0000000000..8a52b6713d --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityCountQuery.java @@ -0,0 +1,13 @@ +package org.thingsboard.server.common.data.query; + +import lombok.Getter; + +public class EntityCountQuery { + + @Getter + private final EntityFilter entityFilter; + + public EntityCountQuery(EntityFilter entityFilter) { + this.entityFilter = entityFilter; + } +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java new file mode 100644 index 0000000000..07985b7f2b --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java @@ -0,0 +1,15 @@ +package org.thingsboard.server.common.data.query; + +import lombok.Data; +import org.thingsboard.server.common.data.id.EntityId; + +import java.util.Map; + +@Data +public class EntityData { + + private final EntityId entityId; + private final Map> latest; + private final Map timeseries; + +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataPageLink.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataPageLink.java new file mode 100644 index 0000000000..36819f53c9 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataPageLink.java @@ -0,0 +1,13 @@ +package org.thingsboard.server.common.data.query; + +import lombok.Data; +import org.thingsboard.server.common.data.page.SortOrder; + +@Data +public class EntityDataPageLink { + + private final int pageSize; + private final int page; + private final SortOrder sortOrder; + +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataQuery.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataQuery.java new file mode 100644 index 0000000000..d6fb116394 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataQuery.java @@ -0,0 +1,22 @@ +package org.thingsboard.server.common.data.query; + +import lombok.Getter; + +import java.util.List; + +public class EntityDataQuery extends EntityCountQuery { + + @Getter + private final EntityDataPageLink pageLink; + @Getter + private final List entityFields; + @Getter + private final List latestValues; + + public EntityDataQuery(EntityFilter entityFilter, EntityDataPageLink pageLink, List entityFields, List latestValues) { + super(entityFilter); + this.pageLink = pageLink; + this.entityFields = entityFields; + this.latestValues = latestValues; + } +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilter.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilter.java new file mode 100644 index 0000000000..578dbc1798 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilter.java @@ -0,0 +1,6 @@ +package org.thingsboard.server.common.data.query; + +public interface EntityFilter { + + EntityFilterType getType(); +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilterType.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilterType.java new file mode 100644 index 0000000000..1a8d30f7b6 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityFilterType.java @@ -0,0 +1,21 @@ +package org.thingsboard.server.common.data.query; + +public enum EntityFilterType { + SINGLE_ENTITY("singleEntity"), + ENTITY_LIST("entityList"), + ENTITY_NAME("entityName"); +// stateEntity = 'stateEntity', +// assetType = 'assetType', +// deviceType = 'deviceType', +// entityViewType = 'entityViewType', +// relationsQuery = 'relationsQuery', +// assetSearchQuery = 'assetSearchQuery', +// deviceSearchQuery = 'deviceSearchQuery', +// entityViewSearchQuery = 'entityViewSearchQuery' + + private final String label; + + EntityFilterType(String label) { + this.label = label; + } +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKey.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKey.java new file mode 100644 index 0000000000..3a4ca0004a --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKey.java @@ -0,0 +1,6 @@ +package org.thingsboard.server.common.data.query; + +public class EntityKey { + private EntityKeyType type; + private String key; +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKeyType.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKeyType.java new file mode 100644 index 0000000000..fa2e429acc --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityKeyType.java @@ -0,0 +1,9 @@ +package org.thingsboard.server.common.data.query; + +public enum EntityKeyType { + CLIENT_ATTRIBUTE, + SHARED_ATTRIBUTE, + SERVER_ATTRIBUTE, + TIMESERIES, + ENTITY_FIELD; +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/SingleEntityFilter.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/SingleEntityFilter.java new file mode 100644 index 0000000000..8d33d5a39d --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/SingleEntityFilter.java @@ -0,0 +1,15 @@ +package org.thingsboard.server.common.data.query; + +import lombok.Data; +import org.thingsboard.server.common.data.id.EntityId; + +@Data +public class SingleEntityFilter implements EntityFilter { + @Override + public EntityFilterType getType() { + return EntityFilterType.SINGLE_ENTITY; + } + + private EntityId singleEntity; + +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/TsValue.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/TsValue.java new file mode 100644 index 0000000000..54a64cb8ee --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/TsValue.java @@ -0,0 +1,10 @@ +package org.thingsboard.server.common.data.query; + +import lombok.Data; + +@Data +public class TsValue { + + private final long ts; + private final String value; +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java index 7080722056..e282ffcda2 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java @@ -33,6 +33,7 @@ import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.UserId; +import org.thingsboard.server.common.data.query.EntityDataQuery; import org.thingsboard.server.dao.alarm.AlarmService; import org.thingsboard.server.dao.asset.AssetService; import org.thingsboard.server.dao.customer.CustomerService; @@ -82,6 +83,11 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe super.deleteEntityRelations(tenantId, entityId); } + @Override + public long countEntitiesByQuery(TenantId tenantId, EntityDataQuery query) { + return 0; + } + @Override public ListenableFuture fetchEntityNameAsync(TenantId tenantId, EntityId entityId) { log.trace("Executing fetchEntityNameAsync [{}]", entityId);