自作java2groovy
Groovyインストール後は java2groovy というJavaのコードをGroovyのコードに変換してくれるコマンドが用意されている。けれども結構気にくわない点が多い(不要な改行が追加される、setter、getterへの参照をプロパティ参照形式にしてほしいがしてくれない、など)
再発明になるかもしれないが、自作してみる。
ソースコード
#!/usr/bin/env groovy
def text = new File(args[0]).text
for (it in [
/t/ : " " * 4,
/.get([a-zA-Z0-9_]+)s*(s*)/ : { all, part -> "." + part[0].toLowerCase() + part[1..-1] },
/System.out./ : "",
/.set(w+)s*(([ja-zA-Z0-9_ "']+))/: { all, property, obj -> "." + property[0].toLowerCase() + property[1..-1] + " = " + obj },
]) {
text = text.replaceAll(it.key, it.value)
}
[
/ +$/ : "",
/;$/ : "",
/(?<=^s*)(publics+)?(String|int|float|double|byte|boolean)s+/: "def ",
].each { key, value ->
text = text.split("n").collect { it.replaceAll(key, value) }.join("n")
}
println text
機能
- 各行の末尾の";"を除去
- "System.out.〜"の記述から、
System.out.
を除去 o.getXxx()
、o.setYyy(b)
の記述は、o.xxx、o.yyy = bに- 基本データ型の宣言部分は、Groovyっぽく def を使用
その他のマイアレンジ
- 仕事で他の人の長いソース見るときに使うが、コメント見て何かいているかよく分からないソースが多いため(笑)、コメント除去
- タブ文字を半角文字に
ノイズが少ないので、ソース解析によい
JavaのコードとGroovyのコードの違いの一つとして、 ノイズ量 がある。
コードの読みやすさって、どれだけそのコードが無駄な処理をしていないかというのがものすごく大きい。Groovyコードに変換すると、わずかながらソースの文字数がへるので解析しやすくなる。
でも、他のソースへ飛んだりは Eclipse や Netbeans つかった方が見やすいんだよなぁ。
ディスカッション
コメント一覧
まだ、コメントがありません