-
Notifications
You must be signed in to change notification settings - Fork 74
协议布局扩展机制之Function函数
quhongwei edited this page Mar 28, 2018
·
1 revision
如协议布局配置内容,根据配置output内容在写文件时输出,在读文件时解析成数据,对于这个过程叫做文件的序列化与反序列化;组件抽象了一层函数功能来执行这个过程,抽象成函数统一接口层调用,根据函数不同实现执行不同的序列化与反序列化动作, 而且当内置函数无法满足自定义文件格式需求时可以扩展函数实现。
<protocol name="fund" rowsplit="rowSplitByFixedlLength">
<head>
<row columnLayout="vertical">
<column>
<output>${column.value()}</output>
</column>
</row>
<row output="${bodycolumn.count()}" type="Integer|[3,0]" />
<row output="${bodycolumn.vertical(name)}" />
<row output="${totalCount}" type="Integer|[8,0]" />
</head>
<body>
<row>
<column>
<output>${column.value()}</output>
</column>
</row>
</body>
<tail>
<row>
<column>
<output>${column.value()}</output>
</column>
</row>
</tail>
</protocol>
配置key | 类 | 描述 |
---|---|---|
无 | RdfFileFunctionSpi | 用户实现扩展spi, 但是请不要直接实现这个,继承RdfFunction |
无 | RdfFunction | 函数执行抽象类 |
无 | ConstFunction | 常量行数,用于输出或者识别文件中的常量 |
column | ColumnFunction | 用于输出字段的 value ,desc |
无 | ColumnFunctionWrapper | 组件内置处理字段函数,外部不需要用 |
bodycolumn | BodyColumnFunction | 对body字段个数, key ,desc 输出 |
函数插件配置默认存放于 META-INF/rdf-file/services/com.alipay.rdf.file.spi.RdfFileFunctionSpi
内容如下:
column=com.alipay.rdf.file.function.ColumnFunction
bodycolumn=com.alipay.rdf.file.function.BodyColumnFunction