我在事务功能定义(即cto文件)中使用@return(MyConcept)。
基于事务功能中的某些条件,我希望返回类型是动态的,即有时它可能返回MyConcept1,有时返回MyConcept2,有时甚至返回null。
我该如何实现?
答案 0 :(得分:1)
使用“主”概念保存其他可选概念
示例:
participant Publisher identified by id {
o String id
}
asset myAsset identified by id {
o String id
o String value
}
concept MyConcept1 {
o String value
}
concept MyConcept2 {
o String value optional
}
concept MyConcept {
o MyConcept1 myc1 optional
o MyConcept2 myc2 optional
}
@returns(MyConcept)
transaction myTransaction {
--> myAsset
etc
}
我的交易可以返回您设置的概念中的任何内容
例如
/**
* Handle a transaction that returns a concept.
* @param {org.sample.MyTransaction} transaction The transaction.
* @returns {org.sample.MyConcept} The concept.
* @transaction
*/
async function myTransaction(transaction) {
// other stuff
const factory = getFactory();
// assign values
var conceptData1 = factory.newConcept('org.sample', 'MyConcept1');
conceptData1.value = transaction.myAsset.value; // etc
//
// return master (you define myConceptdata) based on what was set .. some of which could be blank
return myConceptdata;
}