使用EMF进行元建模:生成具体、可重用的Java代码片段 - 编程入门网
StringBuffer();
> iname = null;
> stm = (Statement)iterator.next();
> if (stm instanceof LiteralAssignment) {%>
> <%= stm.getAssignment().getName()%> = <%=\
>((LiteralAssignment)stm).getValue()%>;
> <%} else
> //
> if (stm instanceof FieldReferenceAssignment) {
> Access ax = (Access)stm;
> if (stm.getAssignment() != null) {
> varString.append(stm.getAssignment().getName());
> varString.append(" = ");
> }
> if ( ax.getStaticType() != null) {
> // STATIC
> iname = ax.getStaticType().getInstanceClassName();
> } else {
> // NON STATIC
> iname = ax.getTarget().getName();
> } %>
> <%=varString.toString()%><%=iname%>.<%=ax.getAccessName()%>;
> <% } else
> if (stm instanceof Invoke) {
> // INVOKE
> Invoke iv = ((Invoke)stm);
> if (stm.getAssignment() != null) {
> varString.append(stm.getAssignment().getName());
> varString.append(" = ");
> }
> for (int p = 0; p < iv.getArgs().size(); p++) {\
>paramsString.append(iv.getArgs().get(p).getName());
> if ( p + 1 < iv.getArgs().size() ) {
> paramsString.append(" , ");
> }
> }
> if (iv.getStaticType() != null) {
> // STATIC
> iname = iv.getStaticType().getInstanceClassName();
> } else {
> // NON STATIC
> iname = iv.getTarget().getName();
> } %>
> <%=varString.toString()%><%=iname%>.<%=iv.getAccessName()\
>%>(<%=paramsString.toString()%>);
> <% }
>} // STATEMENTS
> if (opx.getReturnRef() != null) { %>
> return
> <%=opx.getReturnRef().getName()%>;
> <% }
>} // EOPERATIONIMPL %>
使用EMF进行元建模:生成具体、可重用的Java代码片段(10)时间:2010-11-03 IBM Ken McNeill对 JET 的详细讨论超出了本文的范围。但是,因为 JET 模板对我们的操作过程至关重要,我们将在伪代码方面回顾一下模板的内容。请记住,在处理模板之前,第一个变量 genOperation 已经被 Ecore/JET 预初始化。 清单 4. genOperation 被 Ecore/JET 预初始化
在构建具体模型之前,需要执行一些操作。首先,在 templates/model/Class.javajet 顶部,我们必须将以下内容添加到导入列表(标记为粗体的前两行):
当然,EcoreX 包是经过扩展的元模型。接下来,我们需要为我们的具体模型(My.ecore,类型 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |