OpenSearch ストアは、Read dojo.data API のみを実装します。 次の API の参考資料を参照してください。 このドキュメンテーションは、dojo.data.api.Read ファイルにあり、すべてのストアに共通です。 OpenSearch ストアに対する唯一の制限は、属性です。 OpenSearch ストア内の項目用に定義されている属性は、1 つだけです。 これには content というラベルが付いており、その検索結果のコンテンツを示します。 これらの結果には、Atom フィードのコンテンツ・エレメント、 RSS フィードの記述エレメント、 および HTML の戻りの型の結果内にある個々の行の HTML コンテンツが含まれています。
これは、データ・プロバイダー実装が準拠する抽象 API です。 dojo.data API について詳しくは、 http://www.dojotoolkit.org/node/98 を参照してください。
関数の要約 | |
---|---|
オブジェクト | getValue(Object item, String attribute, String defaultValue) 所定の項目の指定された属性の値を検索します。 |
配列 | getValues(Object item, String attribute) 所定の項目の指定された属性の値を検索します。 |
配列 | getAttributes(Object item) この項目が持つすべての属性を含む配列を戻します。 |
ブール | hasAttribute(Object item, String attribute) 所定の item が所定の attribute 値を持っている場合は、true を戻します。 |
ブール | containsValue(Object item, String attribute, Object value) 所定の value が getValues() によって戻される値のいずれかである場合は、true を戻します。 |
ブール | isItem(Object something) *something* が項目であり、このストア・インスタンスからのものであるかどうかを戻します。 |
ブール | isItemLoaded(Object something) *something* がローカル・メモリーにロードされているかどうかを戻します。 |
void | loadItem(Object keywordArgs) 項目が指定された場合に、このメソッドは項目をロードし、 以後の store.isItemLoaded(item) への呼び出しで true が戻されるようにします。 |
オブジェクト | fetch(Object keywordArgs) 照会と定義済みオプションのセット (戻される項目の開始およびカウントなど) が指定された場合、 このメソッドは、照会を実行し、結果をデータ項目として使用できるようにします。 |
オブジェクト | getFeatures() データ・ストアが実装するインターフェース・フィーチャーを指定する、単純なキーワード値を戻します。 |
void | close(Object request) ストアに対して、特定の要求に関連した情報をクローズ アウトするよう指示します。 |
ストリング | getLabel(Object item) 項目を検査し、ユーザーが読み取れる項目のラベルを戻すメソッド。 このラベルには、項目についての一般的な説明が提供されます。 |
配列 | getLabelAttributes(Object item) 項目を検査し、そのラベルを生成するために使用した項目の属性の配列を戻すメソッド (属性が存在する場合)。 |
関数の詳細 |
---|
単一の属性値を戻します。 項目に属性の値がない場合は、defaultValue を戻します。 属性値としてヌルが設定されていた場合、ヌルを戻します。 項目の所定の属性が値を持たない場合は、undefined を戻します。 これは、項目が属性を持っていないのと同じです。
項目 x の属性 y が値を持たないことを指定するのは、
項目 x が属性 y を持たないことを指定することと同じです。
属性が存在しているのに値を持たないことや、
項目が属性を持っているのに属性値を持たないことを指定するのは矛盾しています。
store.hasAttribute(item, attribute) が false を戻した場合、
store.getValue(item, attribute) は undefined を戻します。
var darthVader = store.getValue(lukeSkywalker, "father");
この getValues() メソッドは、getValue() メソッドと同様に機能しますが、 getValues() は常に、単一の属性値ではなく配列を戻します。 配列は、空であることもあれば、単一の属性値を含んでいることもあります。 また、複数の属性値が含まれていることもあります。 項目が所定の属性の値を持たない場合、 getValues() は空の配列 [] を戻します。 store.hasAttribute(item, attribute) が false を戻した場合、 store.getValues(item, attribute) は [] を戻します。
var friendsOfLuke = store.getValues(lukeSkywalker, "friends");
この項目が持つすべての属性を含む配列を戻します。 このメソッドは、配列を戻します。 項目に属性が全くない場合、getAttributes() は空の配列 [] を戻します。
var array = store.getAttributes(kermit);
所定の item が所定の attribute の値を持っている場合は、true を戻します。
var trueOrFalse = store.hasAttribute(kermit, "color");
所定の value が getValues() によって戻される値のいずれかである場合は、true を戻します。
var trueOrFalse = store.containsValue(kermit, "color", "green");
something パラメーターが項目であり、ストア・インスタンスからのものである場合は、 true を戻します。 something パラメーターがリテラルであり、別のストア・インスタンスからのものである場合、 または項目以外のオブジェクトである場合は、false を戻します。
var yes = store.isItem(store.newItem()); var no = store.isItem("green");
isItem(something) が false である場合は、false を戻します。 isItem(something) が true であっても項目がまだローカル・メモリーにロードされていない場合、 例えば、項目がまだサーバーから読み取られていない場合は、false を戻します。
var yes = store.isItemLoaded(store.newItem()); var no = store.isItemLoaded("green");
項目が指定された場合、このメソッドは項目をロードし、 以後の store.isItemLoaded(item) への呼び出しで true が戻されるようにします。 loadItem() が呼び出される前に isItemLoaded() への呼び出しで true が戻された場合、 loadItem() オブジェクトは作業を完了せず、コールバック・ハンドラーを呼び出しません。 したがって、このメソッドを呼び出す前に、 項目がまだロードされていないことを確認してください。
{ item: object, onItem: Function, onError: Function, scope: object }
照会と定義済みオプションのセット (戻される項目の start と count など) が指定された場合に、 このメソッドは、照会を実行し、結果をデータ項目として使用できるようにします。 フォーマットとストアの予測では、それらは一般に非同期で機能します。 したがって、コールバックは常に、fetch パラメーターによって検索された項目を戻すために使用されます。
要求オブジェクトが戻されます。これは即時に戻されます。 基本要求はキーワード args で、 fetch に渡され、追加の関数 abort() が付加されます。 戻された要求オブジェクトを使用して、fetch をキャンセルします。 すべてのデータ項目の戻りは、fetch パラメーターで定義されたコールバックを介して渡され、 要求オブジェクト上には存在しません。
これは、カスタム・ストアが、戻された要求オブジェクトにメソッドとプロパティーを追加できないことを示しているのではありません。単に、API がそのオブジェクトを必要としていないことを示しているだけです。 要求 API について詳しくは、 dojo.data.api.Request を参照してください。
{ query: query-string or query-object, queryOptions: object, onBegin: Function, onItem: Function, onComplete: Function, onError: Function, scope: object, start: int count: int sort: array }
{ ignoreCase: boolean, //Whether the query matches case sensitivity. Default behaviour is false. deep: boolean //Whether a fetch does a deep search of items and each child //item instead of only root-level items in a data store. Default is false. }
{ attribute: attribute || attribute-name-string, descending: true|false; // Optional. Default is false. }属性を比較する際に、項目に属性の値が含まれていない (undefined) 場合、 その項目は、デフォルトの昇順ソート・ロジックにより、リストの末尾に移されます。 降順の場合、そのような項目はリストの先頭に表示されます。
fetch() メソッドは、dojo.data.api.Request で定義された API に準拠した JavaScript オブジェクトを戻します。 一般に、これは、Request.js attached で必要な関数とともに戻される keywordArgs オブジェクトです。 一般に、その目的は、呼び出し元が進行中の fetch を終わらせるための便利な方法を提供することです。
要求オブジェクトには、戻されるときにプロパティーが追加されていることもあります。 例えば、request.store プロパティーが追加された場合、これは、データ・ストア・オブジェクトを指すポインターであり、 fetch() はそのメソッドです。
// Fetch all books identified by the query and call 'showBooks' when complete var request = store.fetch({query:"all books", onComplete: showBooks}); // Fetch all items in the story and call 'showEverything' when complete. var request = store.fetch(onComplete: showEverything); // Fetch only 10 books that match the query 'all books', starting at the fifth book found during the search. // This demonstrates how paging can be done for specific queries. var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // Fetch all items that match the query, calling 'callback' each time an item is located. var request = store.fetch({query:"foo/bar", onItem:callback}); // Fetch the first 100 books by author King; call showKing when up to 100 items have been located. var request = store.fetch({query:{author:"King"}, start: 0, count:100, onComplete: showKing}); // Locate the books written by Author King; sort on title and publisher, then return the first 100 items from the sorted items. var request = store.fetch({query:{author:"King"}, sort: [{ attribute: "title", descending: true}, {attribute: "publisher"}], ,start: 0, count:100, onComplete: 'showKing'}); // Fetch the first 100 books by authors starting with the name King, then call showKing when up to 100 items have been located. var request = store.fetch({query:{author:"King*"}, start: 0, count:100, onComplete: showKing}); // Fetch the first 100 books by authors ending with 'ing', but only have one character before it (King, Bing, Ling, Sing, etc.), then call showBooks when up to 100 items have been located. var request = store.fetch({query:{author:"?ing"}, start: 0, count:100, onComplete: showBooks}); // Fetch the first 100 books by author King, where the name is displayed as King, king, KING, kInG, and so on, then call showKing when up to 100 items have been located. var request = store.fetch({query:{author:"King"}, queryOptions:(ignoreCase: true}, start: 0, count:100, onComplete: showKing}); // Paging: var store = new dojo.data.LargeRdbmsStore({url:"jdbc:odbc:foobar"}); var fetchArgs = { query: {type:"employees", name:"Hillary *"}, // string matching sort: [{attribute:"department", descending:true}], start: 0, count: 20, scope: displayer, onBegin: showThrobber, onItem: displayItem, onComplete: stopThrobber, onError: handleFetchError, }; store.fetch(fetchArgs); // ... // When the user presses the "Next Page" button fetchArgs.start += 20; store.fetch(fetchArgs); // Get the next 20 items
close() メソッドは、ストアに対して、特定の要求に関連した情報をクローズ アウトするよう指示するためのものです。
close() メソッドは、ストアに対して、特定の要求に関連した情報をクローズアウトするよう指示するためのものです。 一般に、この API は、fetch から戻された要求オブジェクトをパラメーターとして受け取ることを予期しています。 その後、内部データ・ストア・キャッシュのクリアや「オープン」接続のクローズなど、 その要求に関連するものをすべてクローズアウトします。 一部のストア実装の場合、この呼び出しはノーオペレーションになります。
var request = store.fetch({onComplete: doSomething}); //... store.close(request);
項目を検査し、ユーザーが読み取れる項目のラベルを戻すメソッド。 このラベルには、一般的または適切な項目の説明が提供されます。
一般に、ほとんどのラベルは、特定の属性値であるか、 何らかの方法で項目にラベル付けするために結合されている属性値のコレクションです。 例えば、ユーザーを表す項目の場合、このメソッドは、 ラベルを first_name last_name のように戻します。 この場合、first_name と last_name は項目の属性です。 ストアが、人間が読み取れる適切なラベルを判別できない場合は、undefined が戻されます。 ユーザーは、ストア・インスタンスが項目にラベルを付ける方法をカスタマイズする必要がある場合、 ストアのインスタンスの getLabel() 関数を置き換えるか、ストアを拡張して拡張クラス内の関数を置き換えます。
項目を検査し、そのラベルの生成に使用された項目の属性の配列を戻すメソッド (存在する場合)。
この関数は、 ユーザー・インターフェース開発者が、その項目を表示する際に無視できる項目の属性を判別するのに役立ちます。 このような状況は、UI で冗長な情報を表示しないようにするために、 ラベルを全体的な ID として使用している場合に起こります。