Closed kazurayam closed 2 months ago
public static Options KAZURAYAM =
new Options.Builder()
.excludeModule(ModuleToBeExcluded.プロシージャー一覧を作る.getPattern())
.excludeModule(ModuleToBeExcluded.プロシージャ一覧を作る.getPattern())
.excludeModule(ModuleToBeExcluded.プロシジャ一覧を作る.getPattern())
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "プロシージャー一覧を作る")
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "プロシージャ一覧を作る")
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "プロシジャ一覧を作る")
.ignoreRefereeProcedure(VBAModule.ModuleType.Class, "ToString")
.build();
とやってみよう。つまりToString()メソッドを無視する。
ずるい手を思いついた。Optionsクラスをこういうふうに変更した。
public class Options {
public static Options KAZURAYAM =
new Options.Builder()
.excludeModule(ModuleToBeExcluded.プロシージャー一覧を作る.getPattern())
.excludeModule(ModuleToBeExcluded.プロシージャ一覧を作る.getPattern())
.excludeModule(ModuleToBeExcluded.プロシジャ一覧を作る.getPattern())
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "プロシージャー一覧を作る")
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "プロシージャ一覧を作る")
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "プロシジャ一覧を作る")
.ignoreRefereeProcedure(VBAModule.ModuleType.Standard, "KzCls")
.ignoreRefereeProcedure(VBAModule.ModuleType.Class, "ToString")
.ignoreRefereeProcedure(VBAModule.ModuleType.Class, "Count")
.ignoreRefereeProcedure(VBAModule.ModuleType.Class, "Items")
.build();
KzCls
, ToString
, Count
, Items
ーーー これらRefereeプロシジャをignoreする。するとdiagramの中で矢印線がグッと少なくなった。クラス図のノイズが少なくなった。わたしkazurayamはこれらのプロシジャのことを覚えておこう、うっかり削除したりしないように気をつけよう。
もういいと思う
この出力は間違っている。
CashListはクラスモジュールでToStringメソッドを実装している。 PersonクラスもクラスモジュールでToStringメソッドを実装している。 同じToStringだからCashListとPersonを結びつけてしまった。 これは不適切だ。
Personクラスの他メソッドがToStringを参照するのは構文として妥当だが、モジュールの境を跨がないから、描画する価値がない。
その一方で、CashListのソースコードの中に
Dim perosonX As Person; personX = new Person(); personX.ToString()
と書いてあるならば、参照関係が成り立つ。こんなの、正規表現でマッチしようとしたって到底無理な話だ。