|
WebObjects 5.2.3 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.webobjects.eocontrol.EOSortOrdering
EOSortOrderingオブジェクトは属性値を比較するキーとメソッドセレクタによって、オブジェクト群をソートする方法を指定します。 EOSortOrderingは、データベースサーバからデータベース行をフェッチするSQL文の生成と、メモリ中のオブジェクトのソートの両方に使われます。 EOFetchSpecificationオブジェクトは、複数の属性で連続的にソートするためにEOSortOrderingの配列を使います。
EOSortOrderingは、リレーショナルデータベースからデータをフェッチするのに使われるとき、使用するアダプタに合わせたSQLのSELECT文のORDER BY句に変換されます。 詳細はEOSQLExpressionの概要を参照してください。 フレームワークは次の表にある4つの比較用メソッドをあらかじめ定義しています。 この表は比較用セレクタがどうSQLにマッピングされるかも示しています。
定義名 | SQL文 |
CompareAscending | (key) asc |
CompareDescending | (key) desc |
CompareCaseInsensitiveAscending | upper(key) asc |
CompareCaseInsensitiveDescending | upper(key) desc |
次のコードでは上記の表のマッピングを使ってEOSortOrderingの配列 (nameOrdering) を生成しています。
EOSortOrdering lastNameOrdering = EOSortOrdering.sortOrderingWithKey("lastName", EOSortOrdering.CompareAscending); EOSortOrdering firstNameOrdering = EOSortOrdering.sortOrderingWithKey("firstName", EOSortOrdering.CompareAscending); NSMutableArray nameOrdering = new NSMutableArray(); nameOrdering.addObject(lastNameOrdering); nameOrdering.addObject(firstNameOrdering);
生成されるORDER BY句:
order by (lastName) asc, (firstName) asc
sortedArrayUsingKeyOrderArray
と sortArrayUsingKeyOrderArray
メソッドは、メモリ中でオブジェクトをソートするために使われます。
sortedArrayUsingKeyOrderArray
は指定したEOSortOrderingに従ってソートしたオブジェクトの新しい配列を返します。
同様にして sortArrayUsingKeyOrderArray
は配列のオブジェクトをソートします。
次のコードは、上記のコードで生成した「名字、名前」のEOSortOrderingで従業員オブジェクトの配列をソートする例です。
EOSortOrdering.sortArrayUsingKeyOrderArray(employees, nameOrdering);
sortArrayUsingKeyOrderArray(com.webobjects.foundation.NSMutableArray, com.webobjects.foundation.NSArray)
,
sortedArrayUsingKeyOrderArray(com.webobjects.foundation.NSArray, com.webobjects.foundation.NSArray)
,
Serialized FormNested Class Summary | |
static interface |
EOSortOrdering.Comparison
値を比較するためのメソッドを定義したインターフェースです。 |
static class |
EOSortOrdering.ComparisonSupport
ComparisonSupportは、EOSortOrdering.Comparisonインターフェースと(比較を)サポートするオブジェクトを登録したデフォルトの実装です。 |
Nested classes inherited from class com.webobjects.foundation.NSCoding |
NSCoding.Support |
Nested classes inherited from class com.webobjects.eocontrol.EOKeyValueArchiving |
EOKeyValueArchiving.Awaking, EOKeyValueArchiving.FinishInitialization, EOKeyValueArchiving.Support |
Field Summary | |
static NSSelector |
CompareAscending
|
static NSSelector |
CompareCaseInsensitiveAscending
|
static NSSelector |
CompareCaseInsensitiveDescending
|
static NSSelector |
CompareDescending
|
Constructor Summary | |
EOSortOrdering(String key,
NSSelector selector)
EOSortOrderingオブジェクトを生成します。 |
Method Summary | |
Class |
classForCoder()
NSCodingに準拠します。 |
static Object |
decodeObject(NSCoder coder)
NSCodingに準拠します。 |
static Object |
decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver unarchiver)
EOKeyValueArchivingに準拠します。 |
void |
encodeWithCoder(NSCoder coder)
NSCodingに準拠します。 |
void |
encodeWithKeyValueArchiver(EOKeyValueArchiver archiver)
EOKeyValueArchivingに準拠します。 |
String |
key()
項目を並び替えるためのキーを返します。 |
NSSelector |
selector()
ソート時に値を比較するのに使用するメソッドセレクタを返します。 |
static void |
sortArrayUsingKeyOrderArray(NSMutableArray array,
NSArray sortOrderings)
EOSortOrderingの配列 sortOrderings に従って array 中のオブジェクトをソートします。
|
static NSArray |
sortedArrayUsingKeyOrderArray(NSArray array,
NSArray sortOrderings)
EOSortOrderingの配列 sortOrderings に従ってオブジェクトをソートした新しい配列を返します。
|
static EOSortOrdering |
sortOrderingWithKey(String key,
NSSelector selector)
キーとセレクタからEOSortOrderingオブジェクトを生成します。 |
String |
toString()
オブジェクトを文字列にして返します。 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final NSSelector CompareAscending
public static final NSSelector CompareCaseInsensitiveAscending
public static final NSSelector CompareCaseInsensitiveDescending
public static final NSSelector CompareDescending
Constructor Detail |
public EOSortOrdering(String key, NSSelector selector)
key
- オブジェクトをソートする属性のキー
selector
- キーに対するオブジェクトの値を比較するのに使用するセレクタ
sortOrderingWithKey(java.lang.String, com.webobjects.foundation.NSSelector)
Method Detail |
public Class classForCoder()
classForCoder
in interface NSCoding
NSCoding.classForCoder()
public static Object decodeObject(NSCoder coder)
coder
- EOSortOrderingを生成するためのNSCoderオブジェクト
coder
のデータから復元されたEOSortOrderingオブジェクト
public static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver unarchiver)
unarchiver
- オブジェクトをデコードするための key-value アーカイバ
unarchiver
からデコードされたEOSortOrderingオブジェクト
EOKeyValueArchiver
public void encodeWithCoder(NSCoder coder)
encodeWithCoder
in interface NSCoding
coder
-
クラス情報とオブジェクトをエンコードした情報を持つNSCoder
NSCoder
public void encodeWithKeyValueArchiver(EOKeyValueArchiver archiver)
encodeWithKeyValueArchiver
in interface EOKeyValueArchiving
archiver
-
オブジェクトの状態を書き込むEOKeyValueArchiverオブジェクト
EOKeyValueArchiver
public String key()
selector()
public NSSelector selector()
key()
public static void sortArrayUsingKeyOrderArray(NSMutableArray array, NSArray sortOrderings)
sortOrderings
に従って array
中のオブジェクトをソートします。
オブジェクトの比較には、EOKeyValueCodingの valueForKey
メソッドで取得するソート用の属性と、 compare...
メソッドが使われます。
詳細は "SQLでのソート" の比較用メソッドの表を参照してください。
array
- ソートするオブジェクトの配列
sortOrderings
- array
をソートするためのEOSortOrderingの配列
sortedArrayUsingKeyOrderArray(com.webobjects.foundation.NSArray, com.webobjects.foundation.NSArray)
public static EOSortOrdering sortOrderingWithKey(String key, NSSelector selector)
key
- オブジェクトをソートする属性のキー
selector
- オブジェクトの key
に対する値を比較するのに使用するセレクタ
key
と selector
を持つEOSortOrderingオブジェクト
public static NSArray sortedArrayUsingKeyOrderArray(NSArray array, NSArray sortOrderings)
sortOrderings
に従ってオブジェクトをソートした新しい配列を返します。
オブジェクトの比較には、EOKeyValueCodingの valueForKey
メソッドで取得するソート用の属性と、 compare...
メソッドが使われます。
詳細は "SQLでのソート" の比較用メソッドの表を参照してください。
array
- ソートするオブジェクトの配列
sortOrderings
- array
をソートするためのEOSortOrderingの配列
array
を sortOrderings
に従ってソートした配列
sortArrayUsingKeyOrderArray(com.webobjects.foundation.NSMutableArray, com.webobjects.foundation.NSArray)
public String toString()
|
Last updated Thu Oct 21 15:04:16 PDT 2004. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |