TbContext.java
Home
/
rule-engine /
rule-engine-api /
src /
main /
java /
org /
thingsboard /
rule /
engine /
api /
TbContext.java
/**
* Copyright © 2016-2018 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* 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
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.rule.engine.api;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.RuleNodeId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.rule.RuleNode;
import org.thingsboard.server.common.msg.TbMsg;
import org.thingsboard.server.common.msg.TbMsgMetaData;
import org.thingsboard.server.dao.alarm.AlarmService;
import org.thingsboard.server.dao.asset.AssetService;
import org.thingsboard.server.dao.attributes.AttributesService;
import org.thingsboard.server.dao.customer.CustomerService;
import org.thingsboard.server.dao.dashboard.DashboardService;
import org.thingsboard.server.dao.device.DeviceService;
import org.thingsboard.server.dao.entityview.EntityViewService;
import org.thingsboard.server.dao.relation.RelationService;
import org.thingsboard.server.dao.rule.RuleChainService;
import org.thingsboard.server.dao.tenant.TenantService;
import org.thingsboard.server.dao.timeseries.TimeseriesService;
import org.thingsboard.server.dao.user.UserService;
import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
/**
* Created by ashvayka on 13.01.18.
*/
public interface TbContext {
void tellNext(TbMsg msg, String relationType);
void tellNext(TbMsg msg, String relationType, Throwable th);
void tellNext(TbMsg msg, Set<String> relationTypes);
void tellSelf(TbMsg msg, long delayMs);
void tellFailure(TbMsg msg, Throwable th);
void updateSelf(RuleNode self);
TbMsg newMsg(String type, EntityId originator, TbMsgMetaData metaData, String data);
TbMsg transformMsg(TbMsg origMsg, String type, EntityId originator, TbMsgMetaData metaData, String data);
RuleNodeId getSelfId();
TenantId getTenantId();
AttributesService getAttributesService();
CustomerService getCustomerService();
TenantService getTenantService();
UserService getUserService();
AssetService getAssetService();
DeviceService getDeviceService();
DashboardService getDashboardService();
AlarmService getAlarmService();
RuleChainService getRuleChainService();
RuleEngineRpcService getRpcService();
RuleEngineTelemetryService getTelemetryService();
TimeseriesService getTimeseriesService();
RelationService getRelationService();
EntityViewService getEntityViewService();
ListeningExecutor getJsExecutor();
ListeningExecutor getMailExecutor();
ListeningExecutor getDbCallbackExecutor();
ListeningExecutor getExternalCallExecutor();
MailService getMailService();
ScriptEngine createJsScriptEngine(String script, String... argNames);
String getNodeId();
}