如何在QVTo转换中应用UML Standard Profile中的构造型?

时间:2017-07-17 13:55:32

标签: eclipse uml stereotype qvt

在QVTo转换中,我想将UML标准配置文件中的<<Create>>构造型应用于新创建的操作。在它所说的UML spec的第678页上,它适用于BehavioralFeatures,因此适用于Operations。我在帮助器中尝试了以下内容,但无济于事:

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: org.eclipse.uml2.uml.internal.impl.StereotypeImpl@4e796d93 (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");

我做错了什么以及如何正确完成?

1 个答案:

答案 0 :(得分:0)

我发现我可以在帮助程序返回一个映射的上下文之后应用构造型并添加到这样的元素中:

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

我怀疑,在帮助器内元素不属于输出模型,因此不能从应用于模型的配置文件中应用构造型。