Esper系列(十二)Variables and Constants

功能:变量和常量的定义及应用。

EPL配置创建

// 方式一EPAdministrator之后再设置变量及常量
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();  
EPAdministrator admin = epService.getEPAdministrator();  
ConfigurationOperations conf = admin.getConfiguration();  
// 变量的定义
conf.addVariable("abc", String.class, "initVariable");  
// 常量的定义
conf.addVariable("constabc", int.class.getName(), 123, true);

// 方式二先配置好变量及常量,再生成epSerivce对象
Configuration conf = new Configuration();  
// 变量的定义
conf.addVariable("abc", String.class, "initVariable");  
// 常量的定义
conf.addVariable("constabc", int.class.getName(), 123, true);  
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(conf);

EPL语法创建

EPL创建变量和常量格式:

create [constant] variable variable_type [[]] variable_name 
                [ = assignment_expression ] [aggregation_declarations]

格式说明:
1、constant: 为可选关键字,显式声明则表示声明的是常量,否则声明的是变量;
2、variable_type和variable_name分别表示变量的数据类型和变量名,变量名必须唯一。variable_type之后的[]表示这是一个数组类型的变量;
3、assignment_expression: 变量的初始值,如果不声明则表示没有初始值;
4、可以声明的变量类型:

variable_type
    :  string
    |  char 
    |  character
    |  bool 
    |  boolean
    |  byte
    |  short 
    |  int 
10      |  integer 
11      |  long 
12      |  double
13      |  float
14      |  object
15      |  enum_class
16      |  class_name
17      |  event_type_name

示例:

// 创建 integer 类型 sum变量初始值为6
epAdmin.createEPL("create variable integer varmun = 6 ");
// 创建 orderBean 事件类型变量 bean
epAdmin.createEPL("create variable orderBean bean  ");

修改变量值

格式:

on event_type[(filter_criteria)] [as stream_name]
  set variable_name = expression [, variable_name = expression [,...]]

说明:

通过接收某类事件并加上一定的过滤条件,将变量重新赋值,并且可以同时为多个变量赋值;

原文地址:https://www.cnblogs.com/jianyuan/p/5033152.html