37.3.2. checkWidgets の操作
概要 リンクのコピーリンクがクリップボードにコピーされました!
checkWidgets
は、置換グループのヘッドメンバーのパラメーターがある簡単な操作です。この操作は、置換グループのメンバーである個々のパラメーターを処理する方法を示しています。コンシューマーは、パラメーターが置換グループの有効なメンバーであることを確認する必要があります。サービスは、置換グループのどのメンバーが要求で送信されたかを適切に判別する必要があります。
コンシューマーの実装 リンクのコピーリンクがクリップボードにコピーされました!
生成されたメソッドシグネチャーは、置換グループの head 要素のタイプをサポートする Java クラスを使用します。置換グループのメンバー要素は、head 要素と同じ型であるか、head 要素の型から派生した型であるため、置換グループのメンバーをサポートするために生成された Java クラスは、head 要素をサポートするために生成された Java クラスから派生している。Java の型階層は、親クラスの代わりにサブクラスを使用することをネイティブにサポートします。
Apache CXF が置換グループの型および Java の型階層を生成する方法が原因で、クライアントは特別なコードを使用せずに checkWidgets()
を呼び出すことができます。checkWidgets()
を呼び出すロジックを開発する場合は、ウィジェットの置換グループに対応するために生成されたクラスの 1 つのオブジェクトを渡すことができます。
例37.14「checkWidgets()
を呼び出すコンシューマー」 に、checkWidgets()
を呼び出すコンシューマーを示します。
例37.14 checkWidgets()
を呼び出すコンシューマー
サービス実装 リンクのコピーリンクがクリップボードにコピーされました!
checkWidgets()
のサービスの実装は、ウィジェットの記述を WidgetType
オブジェクトとして取得し、ウィジェットのインベントリーを確認し、ストックされているウィジェットの数を返します。置換グループの実装に使用されるクラスはすべて同じベースクラスから継承されるため、JAXB 固有の API を使用せずに checkWidgets()
を実装することができます。
widget
の置換グループのメンバーをサポートするように生成されたクラスはすべて、WidgetType
クラスを拡張します。このため、instanceof
を使用して、渡されたウィジェットの型を決定し、単純に widgetPart
オブジェクトをより制限のある型にキャストできます (適切であれば)。適切なタイプのオブジェクトを取得したら、適切な種類のウィジェットのインベントリーを確認できます。
例37.15「checkWidgets()
のサービス実装」 は、可能な実装を示しています。
例37.15 checkWidgets()
のサービス実装