WhiteStarUML增加getter、setter方法

最近用WhiteStarUML画一些类图。发现UML有些不方便的地方就是不能一键标记getter、setter方法。方便后面导成code。可能是因为UML国内用的人不多。似乎不是很关心这个。
在国外一篇文章里面找到了方法。为了让自己不忘记、特地记录一下流程。
1:找到WhiteStarUML\modules\staruml-standard下的StandardAddIn.mnu文件。
在MAINMENU标签下面新增一行:

将下面这段代码编辑成GenGettersSetters.vbs文件并保存在StandardAddIn.mnu同级目录下:

' GenGettetsSetters.vbs

' Getting Application Object
Set App = CreateObject("WhiteStarUML.WhiteStarUMLApplication")

If IsSelectedKindOf(App, "UMLAttribute") Then
  App.BeginGroupAction
  Set Facto = App.UMLFactory
  Set Sel = App.SelectionManager.GetSelectedModelAt(0)
  Set OwnerClass = Sel.Owner

  ' Create setter
  Set SetterOper = Facto.CreateOperation(OwnerClass)
  SetterOper.Name = "Set" + Sel.Name
  Set Param = Facto.CreateParameter(SetterOper)
  Param.Name = "new" + Sel.Name
  Param.TypeExpression = Sel.TypeExpression

  'Create getter
  Set GetterOper = Facto.CreateOperation(OwnerClass)
  GetterOper.Name = "Get" + Sel.Name
  Set RetValue = Facto.CreateParameter(GetterOper)
  RetValue.Name = ""
  RetValue.DirectionKind = 3 ' Return Type
  RetValue.TypeExpression = Sel.TypeExpression

  App.EndGroupAction
Else
  MsgBox "Make sure an attribute is selected in Model Explorer!"
End If

' ------------------------------------------------------------------------------
' Check Kind Of SelectedModel
' ------------------------------------------------------------------------------
Function IsSelectedKindOf(StarUMLApp, ClassName)
  Dim S
  If StarUMLApp.SelectionManager.GetSelectedModelCount <> 1 Then
    IsSelectedKindOf = False
  Else
    Set S = StarUMLApp.SelectionManager.GetSelectedModelAt(0)
    If S.IsKindOf(ClassName) Then
      IsSelectedKindOf = True
    Else
      IsSelectedKindOf = False
    End If
  End If
End Function

打开whiteStarUML,在model explorer (右上角)窗口下找到你想添加getter、setter的属性。
然后在最上方的工具栏中找到model,选择convert diagram里面的Generate Getters/Setters。就会自动帮你在class里面的operation里面新增一个getter、setter方法。

目前没有找到一个更好的方法 。我理想中的方法是在字段里面标记一下,就能在到处code的时候自动识别。如果看到这个的人知道其他好方法的话,请不吝赐教。

最后说一下我找到这个方法的地址是:http://sourceforge.net/p/whitestaruml/discussion/general/thread/85278517

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值