Xtend

Swagger 用の IDE RepreZen API Studio を試してみた

Twitter の DM で使ってみてよって言われたのでちょっと触ってみました。 RepreZen API Studio: A true IDE for Swagger–OpenAPI 使うには、名前とメールアドレスと会社URLが要りましたが、会社URLは必須じゃなさそう(個人のURL)でもいけました。 必要要件は…

Java8 ラムダを吐く Xtend 2.8.0 がリリースされました!

Xtend - Modernized Java リリースノート 吐きだす Java のバージョンを指定出来るようになったようです。 .java から .xtend に変換する機能もあるようです。 Java8 指定なら Interface のデフォルトメソッドもOKのような事が書かれていました。 Miro's Blo…

Weld SE で RequestScoped 云々を使ってみる

CDI を使っているクラスを Unit Test をするために、Wedl SE を使ってみました。 Weld: Download Weld SE では、RequestScoped や SessionScoped のスコープが使えません。 Chapter 18. Application servers and environments supported by Weld 今回テスト…

CDI @Produces を使った動的な Injection

メモ:動的な Injection の切り替え ※コードは Xtend です。 とあるインターフェースがあります。 interface HogeService {} これには、実装クラスが2個ありました。 @ApplicationScoped class HogeServiceImpl1 implements HogeService {} @ApplicationScop…

Eclipse + Xtend で JUnit 用の AssertExtension 作ってみた

.NET だと Chaining Assertion - Home を良く使ってるので、Xtend でも似たような感じに書けるの作ってみました。 OdaShinsuke/xtendjunit · GitHub Xtend だと、拡張メソッドが使えるので actual.is(expected) という形で大体出来るようにしています。 賛否…

ToStringBuilder より ToStringHelper の方が見やすい!

Lang - Home の ToStringBuilder をよく使ってましたが、最近 Xtend - Modernized Java の ToStringHelper に乗り換えました。 Xtend だからと言われそうなので Java で書いてみました。 import java.util.Date; import org.apache.commons.lang3.builder.To…

忘年会駆動で 「バリバリ、検証は任せろー。やめて!」 の話しをしてきました

12/28 の 忘年会駆動 - 2013 に 2,3 日前に誘われたので、急いで資料作って話してきました。 何の話しかと言うと Java の Bean Validation のお話しです。 BeanValidation from Oda Shinsuke 資料の中で書いているコードは、Xtend - Modernized Java です。 …

Groovy の Canonical アノテーションっぽいのを Xtend で

@Data が使えたら楽なんですが mutable な物の場合 @Data が使えません。とりあえず equals, hashCode, toString を追加したいなーという時用の Active Annotation 書いてみました。 適当なので、commons-lang に思いっきり依存してます。 import java.lang.…

Xtend の dispatch メソッド

元ネタ:Visitorパターンについて考えた — 裏紙 Xtend なら dispatch という構文 が追加されているので Groovy 位簡単に書けます。 interface Node{} @Data class NumNode implements Node { int value } @Data class AddNode implements Node { Node right …

Xtend の @Property を使って BeanValidation でハマったこと

最近 JavaEE 触り始めてます。JSR 303: Bean Validation というアノテーションベースの検証機能があります。.NET でいうと System.ComponentModel.DataAnnotations 名前空間 () のような感じでしょうか。 BeanValidation の使い方等々の話しは無しで、Xtend …

Xtend 2.4.3 で識別子に日本語が使えそうです

朗報です!つい最近 Xtend のバージョンが 2.4.3 になりました。 このバージョンアップで、文字列リテラルの変換方法が変わったようです。 2.4.2 までは、以下のように英数字*1以外の文字は、Unicode 表記で.java に出力されていました。 Hoge.xtend package…

Xtend で static field に型を指定して代入するとコンパイルエラーになる

Xtend のバージョンは最新の 2.4.2 です。 コードを見てもらうと分かりやすいです。 class StaticFieldTest { var static FIELD = 1 def hoge() { println(FIELD) println(StaticFieldTest::FIELD) FIELD = 10 StaticFieldTest::FIELD = 10 // ここだけコン…

Xtend の ActiveAnnotation で メソッドの事前条件を追加してみた

お遊びレベルです。Xtend だと assert が書けないので書いてみました。 まあ assert なので、結局動かさないとNGか分からないという点で、cofoja - Contracts for Java - Google Project Hosting と変わらないので cofoja 使った方が良いよね。 書いた後に気…

Number Literals の Document 間違ってる?

Xtend - Modernized Java の Number Literals のとこで、 頭0 付き数字は、8進数じゃないよーって書いてるけど、動かしたら 8進数だった。。 引用 Xtend - Modernized Java Number Literals のサンプルコード 077 // decimal 77 (*NOT* octal) Xtend のバー…

DoubleArror 演算子

Xtend で C# のオブジェクト初期化子っぽい書き方をしてみる - お だ のスペース で書いた方法が標準で提供されていたー! =>(doubleArror operator) として定義されていました。 Xtend - Modernized Java ObjectExtensions (Eclipse Xbase Runtime Library …

Xtend で C# のオブジェクト初期化子っぽい書き方をしてみる

最近 Xtend を使ってるのでメモ書き。Xtend が何なのかとかの説明は無しです。 2013/01/22 追記:標準のやり方があったので、こっちを参照して下さい。 DoubleArror 演算子 - お だ のスペース Xtend のドキュメントはこちら Xtend - Modernized Java C# の…