2017-07-17 60 views
0

在QVTo轉換中,我想將UML標準配置文件中的<<Create>>原型應用於新創建的操作。它說在UML spec的第678頁上說它適用於BehavioralFeatures,因此適用於操作。我嘗試了幫手裏面以下,但無濟於事:如何在QVTo轉換中應用UML標準配置文件中的構造型?

var _result := object Class {}; 

var const := object Operation { 
    name := "Constructor"; 
    _class := _result; 

    ownedParameter += object Parameter{ 
     name := "return"; 
     type := _result; 
     direction := ParameterDirectionKind::_return; 
    }; 
}; 

_result.ownedOperation += const; 

log("", SP.ownedStereotype![name = "Create"])); 
// ", data: [email protected] (name: Create, visibility: <unset>) (isLeaf: false, isAbstract: false, isFinalSpecialization: false) (isActive: false)" 

log("", const.getApplicableStereotypes()); 
// , data: [] 

log("", const.applyStereotype(SP.ownedStereotype![name = "Create"])); 
// ", data: <Invalid>" 

改造工程上的inout sourceModel : UML和我檢查了分佈在預先塗布sourceModel

property SP = sourceModel.rootObjects()![Model].getAppliedProfile("StandardProfile"); 

我是什麼做錯了,這是如何正確完成的?

回答

0

我發現我可以申請從映射的背景下,刻板印象它是由助手返回,並添加到像這樣的元素後:

element.allSubobjectsOfKind(Operation) 
    // TODO: Refine selector if there is more than one Operation 
    .applyStereotype(SP.ownedStereotype![name = "Create"]); 

我懷疑,該助手裏面的元素不屬於輸出模型,因此不能應用於應用於模型的配置文件中的原型。

相關問題