当前位置: 代码迷 >> 综合 >> 【composer开发】Modeling Language
  详细解决方案

【composer开发】Modeling Language

热度:51   发布时间:2023-12-29 06:52:25.0

资源类

基础

关键字 asset,participant
所有商业网络处理的都是asset。
asset/participant,我们需要用到关键词“identified by filename”。类似于表格的主码。
这些属性默认是需要有初始值,不能为空。可以设置如果没有在初始化时有值,有默认值,需要加上标签default。
如果是可以为空的初始值,需要加上 optional标签。

数据类型有
Primitive type:
string;Double;Integer;Long;DateTime;Boolean

编写完model后,可在playground运行。
在这里插入图片描述
不要忘记,本地playground的启动为:
启动fabric节点后,输入composer-playground。

本地的playground地址:http://localhost:8080/login
打开playground
测试试着生成一个asset。
在这里插入图片描述

面向对象性质

继承 extends

关键字 extends
和其他的差不多。但是不能同时继承多个。
注意必须是同类型的(participant,Asset)

抽象也和其他差不多。
关键字 abstract

通用类concept

关键字concept

generic classes
可以抽象也可以继承。
就是普通的不是资源类的类。
这些类可以作为资源类的变量(field)。

如下图所示:
在这里插入图片描述

Arrays

可以是任意的类型。和其他语言一样使用方括号

例如:

o Integer[] numbers
o String[] strings

registries and relationships

注册表是管理资产和参与者实例的运行时组件。
注册表管理着运行时的资源实例,每个都有独特的key。
每个资源类型都有自己的独立的注册表。

在描述资源之间的关系时,用一个独特的符号:

–>
两个短横线,一个大于号

可以把这个关系看做是数据库里面的外码吧。是一个属性,指向一个特定的资源类。

初始化的时候需要用“namespace全名“加上”#“再加上赋值的那个实例ID。
例子

”属性名字“:”org.acme.airline.aircraft.Aircraft #实例ID“

如果有了这类的问题,那么在playground不好直接测试,建议使用实例去测试。

import

引用的可能是别的namespace的类,因此需要用import。
处理不同cto文件关系,引入所有的namespace文件。

域验证

字符串

字符串验证:正则表达式验证

关键字

regex =

数字

对于数字字段,验证是使用范围关键字定义的。

关键字

range =

这种过滤手段不可以用于复杂的商业规则的制定。

  相关解决方案