XDE中模式驱动的设计与开发(三) - 编程入门网
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。 复杂一点的,比如,我们可以在对这个类的文档中使用这个小脚本:
这样,最后的文档也完成了。 在脚本中使用的具体的API在Rational尚未公布,但是可以使用如下的一个小技巧来得到一个模型元素的API。首先定义一个函数
然后再调用它: show_props(tp1, "tp1"); 这样这个脚本能够在XDE的输出窗口中输出给定模型元素可以被使用的API。 XDE中模式驱动的设计与开发(三)(3)时间:2010-12-103.值源(Value Source)和值集 在创建一个参数的时候,你可以选择的指定这个参数的一个值源,来指明这个参数所接受的输入的方法。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |