|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.co.fujitsu.reffi.client.nexaweb.model.BaseModel
jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel
jp.co.fujitsu.reffi.client.nexaweb.model.SubscribeCore
public class SubscribeCore
[概 要]
トピックをクライアントで購読する為の機能モデルクラスです。[詳 細]
[備 考]
トピックの購読開始と中止は別々のSubscribeCoreで制御することが可能です。同一のSubscribeCoreで購読の開始と中止を行う場合(下記使用例)、SubscriberManager に対してunsubscribeを行うこととなりますが、unsubscribeを実行すると再度successForward が呼び出されます。
別々のSubscribeCoreで購読の開始と中止を行う場合、購読中止のSubscribeCoreを
予約したActionと購読開始のSubscribeCoreを予約したActionに対してsuccessForward
が呼び出されます。
これはActionの多重起動抑制が有効な場合、購読開始を行ったActionが購読中止を認識
できないと、購読を開始したActionが終了することがなく、再度同一のActionを実行することが
不可能となるためです。
両者に共通することで、購読中止の際はsuccessForwardの引数「result」はnullに設定され、
SubscribeCoreから取得できるsuccessCountはインクリメントされた状態となっています。
使用例)
・指定回数subscribeしたらunsubscribeする
public class ServerPushDemoAction extends BaseAction { @Override protected void reserveModels(List> models) { models.add(SubscribeCore.class); } @Override public boolean nextModel(int index, ModelProcessEvent prev, Model next) throws Exception { switch(index){ case 0: ((SubscribeCore)next).setTopic("serverPushDemo"); ((SubscribeCore)next).setSubscribe(true); break; } return true; } @Override public void successForward(int index, Model model, Object result) throws Exception { switch(index) { case 0: // 3回subscribeしたらunsubscribeする SubscribeCore subscribeCore = ((SubscribeCore)model); if(subscribeCore.getSuccessCount() > 3) { SubscriberManager.getInstance().unsubscribe(subscribeCore.getTopic()); } ObjectDataSource odc = getObjectDataSourceById("hostDataSource"); odc.setSource(result); break; } } }
[環 境] JDK 6.0 Update 11
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
SubscribeManager
コンストラクタの概要 | |
---|---|
SubscribeCore()
|
メソッドの概要 | |
---|---|
String |
getIdentifier()
[概 要] トピックを受信中のSubscribeCoreを識別する為の識別子を返却します。 |
String |
getTopic()
[概 要] 購読開始、中止対象トピック名を取得します。 |
boolean |
isSubscribe()
[概 要] 開始、中止を判断するフラグを取得します。 |
protected void |
mainproc()
[概 要] subscribeの開始、中止処理を行います。 |
protected void |
postSubscribe(Object result)
[概 要] subscribe結果受信用オーバーライドメソッドです。 |
protected void |
postUnsubscribe()
[概 要] unsubscribe用オーバーライドメソッドです。 |
void |
setIdentifier(String identifier)
[概 要] トピックを受信中のSubscribeCoreを識別する為の識別子を設定します。 |
void |
setSubscribe(boolean subscribe)
[概 要] 開始、中止を判断するフラグを設定します。 |
void |
setTopic(String topic)
[概 要] 購読開始、中止対象トピック名を設定します。 |
void |
subscribeCompleted(Object result)
[概 要] subscribe受信時にコールバックされるメソッドです。 |
void |
unsubscribeCompleted()
[概 要] unsubscribe時にコールバックされるメソッドです。 |
クラス jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel から継承されたメソッド |
---|
addIdentifierToWindows, getCommunicateId, getEventSourceWindow, setCommunicateId, setEventSourceWindow |
クラス jp.co.fujitsu.reffi.client.nexaweb.model.BaseModel から継承されたメソッド |
---|
addModelProcessListener, finalproc, fireModelFailure, fireModelFinished, fireModelSuccess, getController, getExecuteIndex, getListenerList, getParameterMapping, getResult, getSuccessCount, incrementSuccessCount, isSkip, postproc, preproc, removeModelProcessListener, run, setController, setExecuteIndex, setListenerList, setParameterMapping, setResult, setSkip, trap |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public SubscribeCore()
メソッドの詳細 |
---|
public String getTopic()
[概 要]
購読開始、中止対象トピック名を取得します。[詳 細]
topicフィールド値を返却します。[備 考]
public void setTopic(String topic)
[概 要]
購読開始、中止対象トピック名を設定します。[詳 細]
topicフィールド値を引数topicで設定します。[備 考]
topic
- 購読開始、中止対象トピック名public boolean isSubscribe()
[概 要]
開始、中止を判断するフラグを取得します。[詳 細]
subscribeフィールド値を返却します。[備 考]
public void setSubscribe(boolean subscribe)
[概 要]
開始、中止を判断するフラグを設定します。[詳 細]
subscribeフィールド値を引数subscribeで設定します。[備 考]
subscribe
- 開始、中止フラグpublic String getIdentifier()
[概 要]
トピックを受信中のSubscribeCoreを識別する為の識別子を返却します。[詳 細]
identifierフィールド値を返却します。[備 考]
public void setIdentifier(String identifier)
[概 要]
トピックを受信中のSubscribeCoreを識別する為の識別子を設定します。[詳 細]
identifierフィールド値を引数identifierで設定します。[備 考]
identifire
- トピックを受信中のSubscribeCoreを識別する為の識別子protected void mainproc() throws Exception
[概 要]
subscribeの開始、中止処理を行います。[詳 細]
subscribe管理オブジェクト(SubscribeManager)を取得し、購読の開始、中止を委譲します。
購読中止(isSubscribe() == false)時、unsubscribeメソッド処理が例外をスローしなかった
場合は、その時点でModel処理成功イベントを発火します。
[備 考]
購読中止時のModel処理成功イベント内結果オブジェクトはnullです。 利用することは出来ません。
XalReturnPossibilityModel
内の mainproc
Exception
- オーバーライド先で発生する可能性が有る例外public final void subscribeCompleted(Object result)
[概 要]
subscribe受信時にコールバックされるメソッドです。[詳 細]
SubscribeManagerに管理されているMessageListnerのonMessageイベントハンドラ からコールバックされます。[備 考]
このメソッドはオーバーライド出来ません。
result
- subscribeの結果受信したオブジェクトpublic final void unsubscribeCompleted()
[概 要]
unsubscribe時にコールバックされるメソッドです。[詳 細]
SubscribeManagerにて指定したトピックの購読を中止した際、 SubscribeManagerが管理するSubscribeCoreの本メソッドをコールして 購読を中止した旨を通知します。[備 考]
このメソッドはオーバーライド出来ません。
protected void postSubscribe(Object result)
[概 要]
subscribe結果受信用オーバーライドメソッドです。[詳 細]
デフォルト処理は有りません。[備 考]
result
- subscribeの結果受信したオブジェクトprotected void postUnsubscribe()
[概 要]
unsubscribe用オーバーライドメソッドです。[詳 細]
デフォルト処理は有りません。[備 考]
購読中止の際はデータはないため、引数はありません。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |