jp.wda.gpss
クラス XMLCommandSocklet

java.lang.Object
  拡張jp.wda.gpss.GeneralSocklet
      拡張jp.wda.gpss.CommandSocklet
          拡張jp.wda.gpss.XMLCommandSocklet
すべての実装インタフェース:
AttributeContainer, InitParamContainer, java.io.Serializable, Socklet

public abstract class XMLCommandSocklet
extends CommandSocklet

[ OProject GPSS for FlashMX ] FlashMX用汎用ソケットサーバ
XMLコマンド実行Socklet基底クラス

このSockletクラスはクライアントから送られてきたメッセージをXML文字列として解析し、 そのルートノード名をメソッド名として解釈します。
ルートノード名がXXXXなら、
cmdXXXX(SocketProcessor, SimpleXMLCreator, Object)
メソッドを実行します。
コマンド解析前に、preProcess(SocketProcessor client, String command)メソッドが実行されますので、 全てのメソッドに共通のルーチンはこのメソッドをオーバーライドすると便利です。
また、このメソッドの戻り値が、cmdXXXXメソッドの3番目の引数として渡されます。
オーバーライドしない場合は、常にnullが設定されます。

例えば、クライアントから"<Notify message="Test"></Notify>"と言うメッセージが送られてきた場合、 次のようなメソッドが実行されます。
cmdNotify(client, SimpleXMLCreatorオブジェクト, preprocessed)

指定されたコマンドのメソッドが定義されていない場合は、
cmdUndefined(SocketProcessor client, String command, Object[] params)
メソッドが呼ばれます。 paramsは、cmdXXXXメソッドへ渡す予定だった引数の配列です。
※上記例の場合なら、new Object[]{ client, SimpleXMLCreatorオブジェクト, preprocessed }になります。
未定義コマンドの処理を行なう場合は、このメソッドをオーバーライドしてください。

通常、コマンドの文字列は大文字小文字を区別せず、頭の1文字を大文字、それ以降を小文字として解釈しますが、 execIgnoreCase(SocketProcessor client)メソッドをオーバーライドし、 このメソッドの戻り値を偽にすると、大文字小文字を変更せずにメソッドを検索します。

コマンドリフレクションメソッドの戻り値は "true" / "false"の文字列型でもかまいませんし、int型でも構いませんが、 できるだけbooleanを返してください。
int型を返した場合は、0なら偽、それ以外なら真と解釈します。

導入されたバージョン:
1.00α008 2003/06/14
バージョン:
1.00α008 2003/06/14
作成者:
amoi
関連項目:
GeneralSocklet, 直列化された形式

入れ子クラスの概要
 
クラス jp.wda.gpss.CommandSocklet から継承した入れ子クラス
CommandSocklet.CommandInfo
 
フィールドの概要
static java.lang.Class[] clazz
          コマンドリフレクションメソッドの引数タイプ
 
クラス jp.wda.gpss.GeneralSocklet から継承したフィールド
progress
 
コンストラクタの概要
XMLCommandSocklet()
           
 
メソッドの概要
protected  CommandSocklet.CommandInfo parseCommand(SocketProcessor client, java.lang.String command, java.lang.Object preprocessed)
          送られてきたコマンドを解析し、メソッドをリフレクションするための情報を作成します。
 
クラス jp.wda.gpss.CommandSocklet から継承したメソッド
cmdUndefined, doCommand, execIgnoreCase, preProcess
 
クラス jp.wda.gpss.GeneralSocklet から継承したメソッド
addClient, afterDeployedLinks, allowAccessFromOtherSocklet, checkConnection, containsAttributeKey, containsClient, copyInfo, countClients, deployedBy, deployedBy, destroy, disconnectAllClients, getAllClients, getAttribute, getAttributeBoolean, getAttributeDouble, getAttributeInt, getAttributeKeys, getAttributeLong, getAttributes, getClients, getClients, getInitParam, getInitParamKeys, getInitParams, getInitParams, getMain, getName, getOtherSocklet, getTimeout, hasInitParam, init, init, init, log, log, log, log, memo, memo, memo, memo, preCreateFinder, preRemoveClient, removeAttribute, removeClient, sendToAllClients, sendToClients, sendToClients, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setMain, setTimeout
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

clazz

public static final java.lang.Class[] clazz
コマンドリフレクションメソッドの引数タイプ

コンストラクタの詳細

XMLCommandSocklet

public XMLCommandSocklet()
メソッドの詳細

parseCommand

protected final CommandSocklet.CommandInfo parseCommand(SocketProcessor client,
                                                        java.lang.String command,
                                                        java.lang.Object preprocessed)
送られてきたコマンドを解析し、メソッドをリフレクションするための情報を作成します。
接続中のクライアントから、コマンドが送信されてきたときに呼ばれます。

定義:
クラス CommandSocklet 内の parseCommand
パラメータ:
client - コマンドを送信してきたクライアントソケット
command - 受信したコマンド
preprocessed - 前処理結果オブジェクト
戻り値:
実行するコマンドリフレクションメソッドの名称等情報