assertion

アノテーションによるアサーション(その14 例外の変更)

概要 アサーション失敗時の例外を、AssertionError から下記のように変更しました。 引数のアサーション失敗 java.lang.IllegalArgumentException 戻り値のアサーション失敗 java.lang.IllegalStateException リリース 0.0.19 意図 Error ではなく RuntimeEx…

アノテーションによるアサーション(その13 @Wovenの移動)

概要 @Woven アノテーションを移動しました。 移動前 jp.objectfanatics.assertion.weaver.Woven 移動後 jp.objectfanatics.assertion.constraints.Woven リリース 0.0.18 意図 @Woven アノテーションは、ウィービング完了後に Weaver によって自動的に付与…

アノテーションによるアサーション(その12 オーバーライド時の整合性編)

概要 バージョン 0.0.13 にて、メソッドのオーバーライドに制限を追加しました。この変更により、メソッドをオーバーライドする際に、オーバーライドする側がされる側と同様の制約アノテーションを持たない場合にはエラーになるようになりました。これはリス…

アノテーションによるアサーション(その11 @Max, @Min 編)

概要 バージョン 0.0.12 にて @Max および @Min アノテーションに以下の型のサポートを追加しました。 java.util.concurrent.atomic.AtomicInteger java.util.concurrent.atomic.AtomicLong - アノテーションによるアサーション(その1) アノテーションに…

アノテーションによるアサーション(その10 @Max, @Min 編)

概要 バージョン 0.0.10 にて、@Max および @Min アノテーションについて以下の変更を行いました。 サポート対象の型の追加 アノテーションに与える型の変更(不動小数点数サポートのため) サポート対象として追加された型 byte short float double Byte Sh…

アノテーションによるアサーション(その9 インラインか、メソッド呼び出しか、それが問題だ編)

2009.05.02 現在のバージョン(ver0.0.8) までは、アサーション用のバイトコードをインライン展開する形でバイトコードをウィービングしていました。理由は、そのほうが高速に動作すると考えたからです。しかし、アサーション用のコード全体が毎回ウィービン…

アノテーションによるアサーション(その8 java5 編)

概要 バージョン 0.0.7 までは java6 以上のみのサポートでしたが、バージョン 0.0.8 にて java5 に対応しました。 - アノテーションによるアサーション(その1) アノテーションによるアサーション(その2 mavenプラグイン編) アノテーションによるアサ…

アノテーションによるアサーション(その7 @NotEmpty 編)

概要 バージョン 0.0.7 にて、アサーション用アノテーションに @NotEmpty を追加しました。 @NotEmptyアノテーション 対象がnullでない、かつ、空でないことを保証するためのアノテーションです。現在は、CharSequence(String や StringBuilder等), Collecti…

アノテーションによるアサーション(その6 @Max, @Min 編)

概要 バージョン 0.0.6 にて、アサーション用アノテーションに @Max と @Min を追加しました。 @Maxアノテーション 最大値を指定するアノテーションです。現在は、int, long, Integer, Long 型をサポートしています。 @Minアノテーション 最小値を指定するア…

アノテーションによるアサーション(その5 訂正編)

以前、アノテーションによるアサーション(その2 mavenプラグイン編)に載せたサンプルの pom.xml に、pluginRepositories 要素が抜けていたためにうまく動かないという問題があったので、ページ上の pom.xml と サンプル を修正。 - アノテーションによる…

アノテーションによるアサーション(その4 eclpse 編)

前回 概要 eclise 上で javaagent を使用してバイトコードにアサーション用コードを織り込みます。 必要なファイルの用意 前回の「java agent 用ファイルの配置」と同様の準備をします。 各実行毎に設定を行う場合 実行設定用のダイアログを表示。 例:main…

アノテーションによるアサーション(その3 java agent 編)

前回 概要 java agent を使用してバイトコードにアサーション用コードを織り込みます。 必要なファイルの用意 bytecode instrumentation に必要なファイル assertion-agent-all-0.0.8.jar @NotNull アノテーションや weaving を行うクラスが含まれる jar フ…

アノテーションによるアサーション(その2 mavenプラグイン編)

前回 概要 maven のプラグインを使用してバイトコードにアサーション用コードを織り込みます。 フェーズ maven のデフォルトライフサイクルでは、ソースコードは以下の2つのフェーズでコンパイルされます。 compile main 系のコードがコンパイルされる。 te…

アノテーションによるアサーション(その1)

概要 アノテーションでアサーションを行うライブラリを作成してみました。(最新バージョンはこちらから確認してください)。 機能 @NotNull アノテーションによる引数と戻り値の null チェック。 @Min アノテーションによる最小値の保証。(バージョン 0.0.5…