`

powerdesigner 生成JAVA类

 
阅读更多

1.对类添加JavaDoc注释

Language->Edit Current Object Language...

Java::Profile/Class/Templates/javaDoc修改代码如下:

 

[%ActualComment%/n/n]/ 
[%@since%/n]/ 
[%@deprecated%/n]/ 
[%@author%/n]/ 
[%@version%/n]/ 
[%@see%/n]/ 
.if (%GenOptions.GenerateOID%) 
[@pdOid %.L:ObjectID%/n]/ 
.endif 
[%@misc%/n]/ 
[%Name%]

2.对本类属性添加注释

Language->Edit Current Object Language...

Java::Profile/Classifier/Templates/attributes修改代码如下:

.foreach_item(Attributes)
   .if ((%@1% == all) or (%Visibility% == %@1%)) and (%Derived% == false)
      .if (%isRoleAMigrated%) 
[%MigratedAssociation.roleAMigrateDefinition%/n]
      .elsif (%isRoleBMigrated%) 
[%MigratedAssociation.roleBMigrateDefinition%/n] 
      .else
//[%Name%] 
[%definition%/n] 
      .endif 
   .endif 
   .next

3.对相关联类添加注释

Language->Edit Current Object Language...

Java::Profile/Association/Templates/roleAMigrateFromAssoc修改代码如下:

.// Migrate from an association
.if (%RoleANavigability%)
   .set_value(_attributeCode, %roleACode%, new)
   .set_object(_association, , new)
   .set_object(_class, ClassB, new)
   .set_value(_migrateAttributeCode, false, new)
   .if (%hasAttribute% == false)
//[%ClassA.Name%]
%roleAMigrateDefinition%
   .endif(/n)
.endif

Language->Edit Current Object Language...

Java::Profile/Association/Templates/roleBMigrateFromAssoc修改代码如下:

.// Migrate from an association
.if (%RoleBNavigability%)
   .set_value(_attributeCode, %roleBCode%, new)
   .set_object(_association, , new)  
   .set_object(_class, ClassA, new)
   .set_value(_migrateAttributeCode, false, new)
   .if (%hasAttribute% == false)
//[%ClassB.Name%]
%roleBMigrateDefinition%
   .endif(/n)
.endif

 

4.在Iterator后加入泛型

Language->Edit Current Object Language...

Java::Profile/Association/Templates/Helpers/Migrate/accessorsMany修改代码如下:

.if (%implInterface%)
.// Get collection
.set_value(_operationName, get%.FU:roleName%, new)
.set_value(_operationSignature, get%.FU:roleName%, new)
.set_value(_memberName, %roleName%, new)
 .if (%endClassHasOperation% == false)
/** @pdGenerated default getter */
public %implInterface% %_operationName%() /
{
   if (%_memberName% == null)
      %_memberName% = new %implClass%();
   return %_memberName%;
}
 .endif(/n/n)
.// Get iterator
.set_value(_operationName, getIterator%.FU:roleName%, new)
.set_value(_operationSignature, getIterator%.FU:roleName%, new)
.set_value(_memberName, %roleName%, new)
 .if (%endClassHasOperation% == false)
/** @pdGenerated default iterator getter */
public java.util.Iterator<%Classifier.qualifiedCode%> %_operationName%() /
{
   if (%_memberName% == null)
      %_memberName% = new %implClass%();
   return %_memberName%.iterator();
}
 .endif(/n/n)
.// Set collection
.set_value(_operationName, set%.FU:roleName%, new)
.set_value(_operationSignature, set%.FU:roleName%@%implInterface%, new)
.set_value(_paramName, new%.FU:roleName%, new)
.set_value(_memberName, %roleName%, new)
 .if (%endClassHasOperation% == false)
/** @pdGenerated default setter
  * @param %_paramName% */
public void %_operationName%(%implInterface% %_paramName%) /
{
   removeAll%.FU:roleName%();
   for (java.util.Iterator<%Classifier.qualifiedCode%> iter = %_paramName%.iterator(); iter.hasNext();)
      add%.FU:roleName%((%Classifier.qualifiedCode%)iter.next());
}
 .endif(/n/n)
.// Add object
.set_value(_operationName, add%.FU:roleName%, new)
.set_value(_operationSignature, add%.FU:roleName%@%Classifier.qualifiedCode%, new)
.set_value(_paramName, new%.FU:Classifier.Code%, new)
.set_value(_memberName, %roleName%, new)
 .if (%endClassHasOperation% == false)
/** @pdGenerated default add
  * @param %_paramName% */
public void %_operationName%(%Classifier.qualifiedCode% %_paramName%) /
{
   if (%_paramName% == null)
      return;
   if (this.%_memberName% == null)
      this.%_memberName% = new %implClass%();
   if (!this.%_memberName%.contains(%_paramName%))/n
  .if (%endNavigability%) and (%endMultiple% == false)
   {
      this.%_memberName%.add(%_paramName%);
      %_paramName%.set%.FU:endRoleName%(this);     
   }
  .elsif (%endNavigability%) and (%endMultiple%) and (%endClassHasImplementation%)
   {
      this.%_memberName%.add(%_paramName%);
      %_paramName%.add%.FU:endRoleName%(this);     
   }
  .else
      this.%_memberName%.add(%_paramName%);
  .endif(/n)
}
 .endif(/n/n)
.// Remove object
.set_value(_operationName, remove%.FU:roleName%, new)
.set_value(_operationSignature, remove%.FU:roleName%@%Classifier.qualifiedCode%, new)
.set_value(_paramName, old%.FU:Classifier.Code%, new)
.set_value(_memberName, %roleName%, new)
 .if (%endClassHasOperation% == false)
/** @pdGenerated default remove
  * @param %_paramName% */
public void %_operationName%(%Classifier.qualifiedCode% %_paramName%) /
{
   if (%_paramName% == null)
      return;
   if (this.%_memberName% != null)
      if (this.%_memberName%.contains(%_paramName%))/n
  .if (%endNavigability%) and (%endMultiple% == false)
      {
         this.%_memberName%.remove(%_paramName%);
         %_paramName%.set%.FU:endRoleName%((%EndClassifier.qualifiedCode%)null);
      }
  .elsif (%endNavigability%) and (%endMultiple%) and (%endClassHasImplementation%)
      {
         this.%_memberName%.remove(%_paramName%);
         %_paramName%.remove%.FU:endRoleName%(this);
      }
  .else
         this.%_memberName%.remove(%_paramName%);
  .endif(/n)    
}
 .endif(/n/n)
.// Remove all objects
.set_value(_operationName, removeAll%.FU:roleName%, new)
.set_value(_operationSignature, removeAll%.FU:roleName%, new)
.set_value(_memberName, %roleName%, new)
.set_value(_tempObjName, old%.FU:Classifier.Code%, new)
 .if (%endClassHasOperation% == false)
/** @pdGenerated default removeAll */
public void %_operationName%() /
{
   if (%_memberName% != null)/n
  .if (%endNavigability%) and (%endMultiple% == false)
   {
      %Classifier.qualifiedCode% %_tempObjName%;
      for (java.util.Iterator<%Classifier.qualifiedCode%> iter = getIterator%.FU:roleName%(); iter.hasNext();)
      {
         %_tempObjName% = (%Classifier.qualifiedCode%)iter.next();
         iter.remove();
         %_tempObjName%.set%.FU:endRoleName%((%EndClassifier.qualifiedCode%)null);
      }
   }
  .elsif (%endNavigability%) and (%endMultiple%) and (%endClassHasImplementation%)
   {
      %Classifier.qualifiedCode% %_tempObjName%;
      for (java.util.Iterator<%Classifier.qualifiedCode%> iter = getIterator%.FU:roleName%(); iter.hasNext();)
      {
         %_tempObjName% = (%Classifier.qualifiedCode%)iter.next();
         iter.remove();
         %_tempObjName%.remove%.FU:endRoleName%(this);
      }
   }
  .else
      %_memberName%.clear();
  .endif(/n)
}
 .endif(/n)
.else
 .if (%isGenAssocDefaultAccessors%)
.// Default accessors
.// Get array
.set_value(_operationName, get%.FU:roleName%, new)
.set_value(_operationSignature, get%.FU:roleName%, new)
.set_value(_memberName, %roleName%, new)
  .if (%endClassHasOperation% == false)
/** @pdGenerated default getter */
public %Classifier.qualifiedCode%/[/] %_operationName%() /
{
   return %_memberName%;
}
  .endif(/n/n)
.// Set array
.set_value(_operationName, set%.FU:roleName%, new)
.set_value(_operationSignature, set%.FU:roleName%@%Classifier.qualifiedCode%#, new)
.set_value(_paramName, new%.FU:roleName%, new)
.set_value(_memberName, %roleName%, new)
  .if (%endClassHasOperation% == false)
/** @pdGenerated default setter
  * @param %_paramName% */
public void %_operationName%(%Classifier.qualifiedCode%/[/] %_paramName%) /
{
   this.%_memberName% = %_paramName%;
}
  .endif(/n/n)
 .endif
.endif

 

5.去除pdOid注释

Java::Generation/Options/GenerateOID,Value值设置为No

分享到:
评论

相关推荐

    powerDesigner 导出 JAVA 代码

    生成JAVA代码 最后,我们执行JAVA代码的生成操作: - **点击工具栏:“Language”&gt;“Generate Java Code”**:弹出代码生成面板。 - **勾选“Check model”**:激活模型检查功能,可以检测类图中存在的语法问题,...

    Powerdesigner生成项目构架

    在这个过程中,我们将重点讨论如何配置 Powerdesigner 以支持 Eclipse 和 Hibernate,并生成数据库和 Java 代码。 首先,我们需要了解如何使用 Powerdesigner 创建数据库模型,即 Object-Oriented Model (OOM)。在 ...

    使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件

    2. **代码生成**:基于UML模型,PowerDesigner可以生成Hibernate持久化类(POJOs)、映射文件(.hbm.xml)和配置文件(.cfg.xml)。这一过程遵循一定的规则,例如子类的映射信息通常被挂载在根类的映射文件下,而非...

    PowerDesigner 与XML建模

    PowerDesigner 与XML建模

    PowerDesigner在《Java程序设计》中的应用

    ### PowerDesigner在《Java程序设计》中的应用 #### 摘要 在当前教育背景下,《Java程序设计》作为计算机科学领域的重要组成部分,不仅承载着理论知识的教学任务,更需要注重培养学生实际操作能力和解决复杂问题的...

    PowerDesigner 教程2个chm格式

    6. **代码生成**:可生成应用程序的源代码,如Java、C#等。 ### 三、模型操作 - **实体(Entity)**:表示业务对象,如用户、订单等,具有属性(Attribute)和关系(Relationship)。 - **属性(Attribute)**:...

    JavaBean实体类 配置文件 代码一键自动生成工具

    代码一键自动生成工具 可生成Action、JavaBean实体类、Dao及实现类、service及实现类、spring.xml、struts.xml、mybatis.xml *该工具目前支持3种数据源的生成方式,分别是:JDBC、.table、PDM *JDBC:选择JDBC是只...

    PowerDesigner逆向工程

    PowerDesigner支持自动生成数据库访问层代码,逆向工程后的模型可以直接用于生成符合特定编程语言的DAO层代码。 综上所述,PowerDesigner逆向工程是一个强大且实用的功能,对于数据库开发者和管理员来说,它能够...

    利用powerdesigner反向数据库结构,生成ER图

    PowerDesigner 反向数据库结构生成 ER 图 PowerDesigner 是一个功能强大且灵活的数据建模工具,可以对数据库进行反向工程,生成 ER 图。本文档将指导您如何使用 PowerDesigner 反向数据库结构,生成 ER 图。 概念...

    customizing powerdesigner

    以自动生成Java实体类为例,我们可以编写一个插件,从PowerDesigner的模型中读取表结构,然后生成对应的Java Bean代码。这个过程中,我们需要解析模型中的对象,获取表名、字段名、数据类型等信息,再利用Java的模板...

    PowerDesigner16.5.rar

    此外,它还能根据数据模型生成数据库访问代码,例如Java的JDBC代码,加速开发进程。 五、性能分析 在物理数据模型阶段,PowerDesigner提供了性能分析器,可以模拟数据查询,预测数据库在实际运行中的性能,帮助优化...

    PowerDesigner

    OOM可以用于纯面向对象的设计,也可以生成Java文件或PowerBuilder文件;同时,OOM中的对象还可以转换为PDM中的元素,用于关系数据库的设计分析。 - **业务过程模型(BPM)**: 描述业务的不同任务和流程,以及它们之间...

    PowerDesigner与Eclipse同步开发

    #### 一、通过PowerDesigner生成Java源代码,并将其导入到Eclipse项目中 在本部分中,我们将探讨如何利用PowerDesigner为Eclipse项目生成Java源代码。这一过程分为几个步骤,从创建模型开始直至最终生成代码。 ###...

    mybatis实体类,dao层逆向生成工具

    MyBatis Generator(MBG)是一个强大的工具,它可以自动从数据库中读取表信息,然后生成Java源代码,这些源代码包括了实体类、Mapper接口和XML配置文件,以及DAO实现类。这极大地减少了开发者的工作量,使他们能更...

    使用PowerDesigner创建面向对象模型7-sun,com[整理].pdf

    PowerDesigner是一款强大的数据库建模工具,它也支持创建面向对象模型。面向对象模型是一种软件设计方法,通过...同时,通过源代码的生成,PowerDesigner能够将这些模型直接转化为可执行的代码,极大地提高了开发效率。

    PowerDesigner对象模型手册(英文).pdf

    - **多语言支持**:能够根据OOM自动生成Java、PowerBuilder、XML、C++、Visual Basic等多种编程语言的源代码。 - **数据模型生成**:不仅能够生成概念数据模型(CDM)、物理数据模型(PDM),还能从OOM中生成相应的对象...

    使用PowerDesigner设计数据库

    同时,它还支持生成数据库访问层的代码,适用于多种编程语言,如Java、C#等,加速应用程序的开发。 8. **版本控制与团队协作** PowerDesigner支持版本控制,可以与其他团队成员协同工作,跟踪和合并模型的变更,...

    Powerdesigner license证书16.6 16.5可用

    3. **正向工程**:根据设计的模型,PowerDesigner可以生成数据库脚本,创建实际的数据库结构。 4. **数据流建模**:除了数据库建模,它还支持业务过程建模,如数据流图(DFD),帮助分析和设计业务流程。 5. **...

    PowerDesigner16.5三件套.rar

    7. **代码生成器(Code Generation)**:PowerDesigner可以自动生成数据库脚本、Java、C#等编程语言的源代码,大大提高了开发效率。 8. **变更管理(Change Management)**:在团队协作环境中,PowerDesigner的版本...

Global site tag (gtag.js) - Google Analytics