うさぎ組

ソフトウェア開発、チームによる製品開発、アジャイル、ソフトウェアテスト

GStringを読んでみた

GString (Groovy 2.2.1)


GStringはabstract Class
GroovyObjectSupportクラスを継承
GStringはObjectの配列valueを保持している


getStringsでStringの配列を返す抽象メソッドを定義している
invokeMethodではまずGroovyObjectSupportクラスに定義されているメソッドを実行しようとし、MissingMethodExceptionが発生した場合は自身をtoString()した結果のオブジェクトにおけるメソッドを実行しようとする


getValuesでObjectの配列valueを返す
GStringではStringの配列newStringsとObjectの配列valuesを管理している。


toString()ではStringWriterを使う
getStringsの返り値と交互にgetValuesの返り値を繋げる。
valuesにわたってくるのがClosureの場合はパラメーターがゼロの場合はそのままコールして、一つの場合はwriterオブジェクトを渡してコールする。2つ以上の場合は例外発生。


buildメソッドではtoStringのようにstringsでvaluesを交互にコールしながらmkp.yieldをコールする。


equals/hashcode/compareto/charat/length/subsequence/negateはtoStringした結果に対してコールする


プログラミングGROOVY

プログラミングGROOVY

Groovyイン・アクション

Groovyイン・アクション

Code Reading―オープンソースから学ぶソフトウェア開発技法

Code Reading―オープンソースから学ぶソフトウェア開発技法