AFA4J Java引擎组件参数填写规则说明书.docx
《AFA4J Java引擎组件参数填写规则说明书.docx》由会员分享,可在线阅读,更多相关《AFA4J Java引擎组件参数填写规则说明书.docx(6页珍藏版)》请在冰豆网上搜索。
AFA4JJava引擎组件参数填写规则说明书
Java引擎组件参数填写规则说明书
项目名称
AFA4J
项目代号
文档名称
Java引擎组件参数填写规则说明书
文档版本
V0.1
起草
刘戈,林智、李儒汉、林盛、林耿彬
起草日期
20151117
审批
刘戈
审批日期
版权声明:
本文档的版权归北京赞同科技有限公司所有,XX不得复制和引用。
本文档若有改动,恕不另行通知。
本书约定:
1、通用格式约定
宋体:
正文采用小四宋体。
楷体:
警告、说明等提示等内容一律用楷体,并且在内容前后增加线条与
正文隔离。
屏幕显示描述:
对于来自屏幕的显示信息,采用如下格式:
英文CourierNew,中文宋体,文字大小为小四号;信息中夹杂的用户从终端输入的信息,使用加粗字体表示。
2、各类标志
本书还采用各种醒目标志来表示在操作过程中应该特别注意的地方,这些标志意义如下:
:
警告、危险、提醒操作中应注意的事项。
:
说明、注意、提醒操作中应注意的事项。
变更记录
序号
修改内容
页号
修改人
完成日期
1
2
3
4
5
6
注:
对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。
第一章概述
本文档用于描述AFA4J2.0Java引擎技术组件参数填写规则,Java引擎是一个纯Java的脚本引擎(技术组件用Java编写、业务组件及服务流程编译成Java语言),因此原生就支持Java语言规范的参数填写方式(例如获取__REQ__里的name字段:
__REQ__.getItem(“name”),getItem是__REQ__对象的一个方法)。
鉴于Java语言方式操作字典、列表、JavaBean过于繁琐,因此AFA4J同时支持类Python语法的参数填写方式(例如获取__REQ__里的name字段:
__REQ__[“name”]),以简化参数填写,提高应用的开发效率。
第二章入参
本章主要描述技术组件入参的填写规则,涵盖了Java语言的各种常见的类型:
基础数据类型、String、JavaDict、JavaList、其它类型。
二.1基础数据类型
基础数据类型的填写遵守Java语言规范,例如:
1、int:
1
2、long:
1或者1L
3、short:
1
4、float:
0.1或者0.1f
5、double:
0.1或者0.1d
6、byte:
0X01或1
7、char:
’x’
8、boolean:
ture或者false
范例:
技术组件定义:
publicstaticTCResultcalculate(inta1,longa2,shorta3,floata4,doublea5,bytea6,chara7,booleana8)
参数填写:
入参一:
1,入参二:
1,入参三:
1,入参四:
0.1,入参五:
0.1,入参六:
0X01,入参七:
‘y’,入参八:
true
二.2String
String的填写规则遵守Java语言规范,例如:
“xxxxx”或者“xx”+“yy”或者“xxx”+1或者“xxxx”+__REQ__(相当于”xxxx”+__REQ__.toString())。
注意:
Java引擎的字符串要用双引号包住,例如:
“xxx”//合法
‘xxx’//非法
二.3JavaDict
JavaDict类似Python的dict,key是String类型,value可以是任何类型的数据。
二.3.1字典取值
JavaDict的取值方式与Python的dict方式一致,例如:
1、获取__REQ__的name字段值:
__REQ__[“name”]
2、获取__REQ__的student字段的name字段值:
__REQ__[“student”][“name”],其中__REQ__的student字段值的类型是JavaDict
3、获取__REQ__的__REQ__[“student”]字段值:
__REQ__[__REQ__[“student”]]
4、获取__REQ__的list字段的第__REQ__[“i”]个值:
__REQ__[“list”][__REQ__[“i”].toInt()],其中__REQ__的list字段值的类型是JavaList
范例:
技术组件定义:
publicstaticTCResultcalculate(inta1,Stringa2)
参数填写:
参数一:
__REQ__[“age”],参数二:
__REQ__[“name”]
二.3.2创建字典
JavaDict的创建方式与Python的dict方式一致,例如:
{“name”:
“richie”,“age”:
18,“address”:
__REQ__[“addr”]}
key必须是String,value可以是任何类型,可以填写常量(如:
18),也可以填写变量(例如:
__REQ__[“addr”])。
JavaDict可以嵌套JavaDict或JavaList,例如:
{“name”:
“richie”,“address”:
{“province”:
“广东”}}
范例:
技术组件定义:
publicstaticTCResultcalculate(JavaDicta1)
参数填写:
参数一:
{“name”:
“richie”}
二.4JavaList
JavaList类似Python的list,value可以是任何类型的数据。
二.4.1列表取值
JavaList的取值方式与Python的list方式一致,例如:
1、获取list的第一个元素:
list[0]
2、获取list的第一个元素的第一个元素:
list[0][0],其中list第一个元素的类型是JavaList
3、获取list的第__REQ__[“i”]个元素:
list[__REQ__[“i”].toInt()]
范例:
技术组件定义:
publicstaticTCResultcalculate(inta1,Stringa2)
参数填写:
参数一:
list[0],参数二:
names[0]
二.4.2创建列表
JavaList的创建方式与Python的list方式一致,例如:
[“richie”,18,__REQ__[addr]]
value可以是任何类型,可以填写常量(如:
18),也可以填写变量(例如:
__REQ__[“addr”])。
JavaList可以嵌套JavaDict或JavaList,例如:
[“richie”,18,[2,3,4],{“name”:
”sam”}]
范例:
技术组件定义:
publicstaticTCResultcalculate(JavaLista1)
参数填写:
参数一:
[“richie”,18,__REQ__[addr]]
二.5其它类型
本节描述其它类型(自定义、JDK自带)的取值规则,以下以User类为例子说明自定义类型的取值规则。
User类定义:
packagedemo;
publicclassUser{
privateStringname;
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
}
如果要取User对象的name属性的值,有以下两种方式:
1、调用对象方法,如:
((demo.User)__REQ__[“user”]).getName()
2、类python语法,如:
__REQ__[“user”](“name”),在对象后面以圆括号取属性的值。
其中__REQ__[“user”]是一个User对象。
二.6类型转换
支持在填写参数时做类型转换,如:
__REQ__["xxx"].toStr(),把__REQ__["xxx"]转成String
__REQ__["xxx"][0].toInt(),把__REQ__["xxx"][0]转成int
__REQ__["xxx"]("yyy").toBoolean(),把__REQ__["xxx"]("yyy")转成boolean
__REQ__["innerDict1"].asDict(),把__REQ__["innerDict1"]转成JavaDict
__REQ__["innerDict1"]["innerDict2"].asDict(),把__REQ__["innerDict1"]["innerDict2"]转成JavaDict
支持的转换函数有:
toStr()、toShort()、toInt()、toLong()、toFloat()、toDouble()、toBoolean()、asDict()、asList()
第三章出参
技术组件出参只能存放在容器内,只能以如下所示形式填写:
dict[“name”]或dict[“subdict”][“name”]或dict[“subdict”][“name”]....
其中dict只能是__REQ__或__RSP__或__BUILTIN__