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

概要

 バージョン 0.0.7 にて、アサーションアノテーションに @NotEmpty を追加しました。

@NotEmptyアノテーション

 対象がnullでない、かつ、空でないことを保証するためのアノテーションです。現在は、CharSequence(String や StringBuilder等), Collection(Set や List等), 配列型をサポートしています。空の定義は以下のようになります。

  • size が 0 の Collection
  • length が 0 の CharSequence
  • length が 0 の配列

 以下に @NotEmpty アノテーションの例を示します。

ウィービング可能な例
// 引数が CharSequence の例その1。
// 引数として null や length が 0 の値を代入すると AssertionError が throw されます。
public void set(@NotEmpty String value) {
}

// 引数が CharSequence の例その2。
// 引数として null や length が 0 の値を代入すると AssertionError が throw されます。
public void set(@NotEmpty StringBuilder value) {
}

// 引数が Collection の例その1。
// 引数として null や size が 0 の値を代入すると AssertionError が throw されます。
public void set(@NotEmpty Collection<Object> value) {
}

// 引数が Collection の例その2。
// 引数として null や size が 0 の値を代入すると AssertionError が throw されます。
public void set(@NotEmpty List<Object> value) {
}

// 戻り値が CharSequence の例その1。
// 戻り値として null や length が 0 の値を返そうとすると AssertionError が throw されます。
@NotEmpty
public String getString() {
	return "dummy";
}

// 戻り値が CharSequence の例その2。
// 戻り値として null や length が 0 の値を返そうとすると AssertionError が throw されます。
@NotEmpty
public StringBuilder getStringBuilder() {
	return new StringBuilder("dummy");
}

// 戻り値が Collection の例その1。
// 戻り値として null や size が 0 の値を返そうとすると AssertionError が throw されます。
@NotEmpty
public Collection<?> getCollection() {
	return Arrays.asList(new Object[1]);
}

// 戻り値が Collection の例その2。
// 戻り値として null や size が 0 の値を返そうとすると AssertionError が throw されます。
@NotEmpty
public List<?> getList() {
	return Arrays.asList(new Object[1]);
}