net.java.ao.Commonのメソッド
先月からActiveObjectsのソースファイルを読んでいますが、頻繁にnet.java.ao.Commonsクラスのメソッドの呼び出しが現れます。
このクラスのメソッドは、ActiveObjects内でよく行われる処理のユーティリティメソッドのようです。
そこで、今後のソースの解析を楽にするために、これらのメソッドを整理してみました。
net.java.ao.Commonのメソッドの概要
※注:このクラスはactiveobjectsの公開APIではないので、ユーザプログラムから使うべきではないです。あくまで、ソース解析を目的として作成した表です。
メソッド名 | 概要 | 戻り値 | 引数 |
---|---|---|---|
convertDowncaseName | 名前の頭文字を小文字に変換する。 | String | String name |
convertSimpleClassName | クラスの完全修飾名をクラス名のみに変換する。 | String | String name |
findCounterpart | アクセッサ(ミューテータ)に対応するミューテータ(アクセッサ)を返す。 | Method | FieldNameConverter converter, Method method |
fuzzyCompare | オブジェクトを比較する。比較方法はオブジェクトのクラスから取得できるデータベース型により決まる。 | boolean | Object a, Object b |
fuzzyTypeCompare | JDBC型を比較する。java.sql.Typesの型コードを比較する。 | boolean | int typeA, int typeB |
getAnnotationDelegate | アクセッサ/ミューテータからアノテーションを取得するための移譲オブジェクトを取得する。 | AnnotationDelegate | FieldNameConverter converter, Method method |
getAttributeTypeFromMethod | メソッドから属性型を取得する。関連アノテーションがついていないアクセッサ/ミューテータから取得できる。 | Class<?> | Method method |
getCallingClass | メソッドの呼び出し元クラスを取得する。 | Class<?> | int depth |
getMappingFields | fromインタフェースからtoインタフェースへのマッピングフィールドの名前を取得する。 | String[] | FieldNameConverter converter, Class<? extends RawEntity<?>> from, Class<? extends RawEntity<?>> to |
getPolymorphicFieldNames | fromインタフェースからtoインタフェースへのマッピングフィールドのポリモフィック型の名前を取得する。ただし、ポリモフィックなフィールドのみを対象とする。 | String[] | FieldNameConverter converter, Class<? extends RawEntity<?>> from, Class<? extends RawEntity<?>> to |
getPrimaryKeyAccessor | 主キーのアクセッサを取得する。 | Method | Class<? extends RawEntity<?>> type |
getPrimaryKeyClassType | 主キーのクラス型を取得する。 | Class<? extends RawEntity |
|
getPrimaryKeyField | 主キーの名前を取得する。 | String | Class<? extends RawEntity<?>> type, FieldNameConverter converter |
getPrimaryKeyMethod | 主キーのメソッドを取得する。 | Method | Class<? extends RawEntity<?>> type |
getPrimaryKeyType | 主キーのデータベース型を取得する。 | Class<? extends RawEntity |
|
getPrimaryKeyValue | 主キーのアクセッサの呼び出し結果の戻り値を取得する。 | RawEntity |
|
getSearchableFields | 検索(フルテキストサーチ)可能なフィールドを取得する。 | List |
EntityManager manager, Class<? extends RawEntity<?>> type |
interfaceInheritsFrom | インタフェースの継承を確認する。 | boolean | Class<?> type, Class<?> superType |
isAccessor | アクセッサであることを確認する。 | boolean | Method method |
isMutator | ミューテータであることを確認する。 | boolean | Method method |
typeInstanceOf | インスタンスの型を確認する。 | boolean | Class<?> type, Class<?> otherType |
補足の必要な項目
getPrimaryKeyMethod
getPrimaryKeyMethodは主キーのアクセッサとミューテータの両方が存在しても、どちらか一方のみを返します。(実際は先に宣言されている方)
また、このメソッドは、主キーメソッドのもつアノテーションの確認のために使用されています。
そのため、主キーがアクセッサとミューテータの両方を持つ場合、両方に同一のアノテーションを設定しないと正しく動作しないかもしれません。
未調査ですが、そもそも主キーに対しては、アクセッサのみしか宣言すべきでないかもしれません。
java.net.ao.CommonsにgetPrimaryKeyMutatorは存在しませんし・・・・。