快速业务通道

XDE中模式驱动的设计与开发(三) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
tatements(myClass); } var myOperation = Interfaces.queryInterface(thisElement, "com.rational.uml70.IUMLOperation"); debugOperation(myOperation); // end %>

在上面的代码模版中,定义了两个方法debugStatements和debugOperation,debugOperation接受当前元素作为参数,并由其得到debugStatements的参数--一个包含了这个方法的对象,并在debugStatements中输出:System.out.println( "<%=attrName%>" );

XDE中模式驱动的设计与开发(三)(2)

时间:2010-12-10

以在控制台输出对象的状态。

在代码模版中,可以用一个"thisElement"的标准的预定义变量来代表代码模版被应用的元素,在当前版本的XDE中,只能够在类中的方法上应用代码模版。

当然,代码模版的一个最大的作用,就是同模式的模版参数一起来使用了。一个最简单的例子,比如说,如果我创建了两个模版参数,设为tp1和tp2,分别代表了两个类。我需要在tp1代表类的方法op1()中创建tp2所代表类的一个对象,并把它赋给一个tp2类型的引用。那么我们可以为代码模版中定义一个参数codetp,类型为String,并为其赋值为<%=tp2%>。则在为op1()所创建的代码模版中,我们可以这样写:

<%=codetp%> a<%=codetp%>Object=new <%=codetp%>();

假设tp2最后被绑定到一个名为ClassTP的类上,代码模版被展开后的结果就是:

ClassTP aClassTPObject=new ClassTPObject();

这样就完成了我们想要的功能。

这只是一个最为简单的功能。实际上,XDE中的代码模版的功能是非常强大的,通过javascript脚本语言和XDE内建的编程模型,我们可以创建非常复杂的代码模版,使得代码的生成率大大提高。

2.模式小脚本(Scriptlets)

小脚本是一种可执行的代码片断,实际上在上面对代码模版的介绍中,我们已经接触到这种小脚本。<%=var%>就是一种简单的小脚本。小脚本不仅能够应用在代码模版中,还可以使用在模型的其它地方,比如类,属性,或者方法的名字,元素的属性值,模型的文档注释,关联的端点名,等等。几乎在任何可以使用字符串的地方都可以使用小脚本。这种小脚本的语法很简单: <%=scriptlet text%>。使用javascript脚本语言,还可以在<%和%>标记之间加入其它的程序片断。

小脚本在模式被展开的时候被运行,并用运行的结果字符串来替代这段脚本。最为普遍的一个用法是用来动态的替代模版参数的名字。比如,如果在模式中定义了一个名为tp1的模版参数,那么小脚本<%=tp1%>在模式被展开时被替换成tp1所绑定的参数值的名字。如果tp1帮定到一个类名为TPClass的类上,那么最后所有的<%=tp1%>都被替换成TPClass。

复杂一点的,比如,我们可以在对这个类的文档中使用这个小脚本:

Name Length: <%= tp1.getName().length()%> Name Substring: <%= tp1.getName().substring(0, tp1.getName().length()-1)%>

这样,最后的文档也完成了。

在脚本中使用的具体的API在Rational尚未公布,但是可以使用如下的一个小技巧来得到一个模型元素的API。首先定义一个函数

function show_props(obj, obj_name) { var result = ""; for (var i in obj) { EAEventData.AddOutputMessage(obj_name + "." + i + " = " + obj[i]); } }

然后再调用它:

show_props(tp1, "tp1");

这样这个脚本能够在XDE的输出窗口中输出给定模型元素可以被使用的API。

XDE中模式驱动的设计与开发(三)(3)

时间:2010-12-10

3.值源(Value Source)和值集

在创建一个参数的时候,你可以选择的指定这个参数的一个值源,来指明这个参数所接受的输入的方法。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号