(クラス)
public abstract CommandImpl
{inherits
Command}
具象実装を持ち、呼び出し可能なすべての Command のスーパークラス。
説明
CommandImpl は、通常、以下の手順で呼び出されます。
CommandImpl が
パラメータを持っている場合があることに注意してください。これらのパラメータは、検証や実行の前にコマンドに情報を渡すために使用されるもので、コマンドの永続的な状態の一部とは
見なされません。このコマンドを新しく呼び出すたびに、メソッド
CommandImpl.prepare を呼び出す必要があり、それによってパラメータは既定値にリセットされることに注意してください。規則では、パラメータには、
param-my-property というフォームに従って命名する必要があります。
オーバーライド
コンストラクタ public | {CommandImpl.default name:String} |
enabled?: | 適切なパラメータ設定が適用されるとして、この CommandImpl が実行可能な状態にあるかどうかを調べます。 |
アクセサ public CommandImpl.enabled?:
bool
アクセサ public CommandImpl.has-prompt?:
bool
valid?: | CommandImpl とその状態 (パラメータを含む) をすぐに実行できるかどうかを調べます。 |
アクセサ public CommandImpl.valid?:
bool
public | {CommandImpl.do-command allow-prompt?:bool = true}:void |
protected abstract | {CommandImpl.execute}:void |
public | {CommandImpl.prepare}:void |
prompt: | コマンドを実行する前に、ユーザーから最終的なデータや確認を得ます。 |
protected | {CommandImpl.prompt}:bool |
protected | {CommandImpl.update-completed}:void |
(コンストラクタ)
public | {CommandImpl.default name:String} |
(アクセサ)
アクセサ public CommandImpl.enabled?:
bool 適切なパラメータ設定が適用されるとして、この CommandImpl が実行可能な状態にあるかどうかを調べます。
オーバーライド
実装では、論理値、計算した任意の値、および super.enabled? を返します。
(アクセサ)
アクセサ public CommandImpl.has-prompt?:
bool このコマンドにプロンプトがあるかどうかを調べます。
オーバーライド
このメソッドの既定の実装は false を返し、
CommandImpl はプロンプトを表示しません。実行時の情報とエンドユーザーからの確認の一方または両方を要求するサブクラスは、このメソッドと
CommandImpl.prompt をオーバーライドする必要があります。
(アクセサ)
(アクセサ)
アクセサ public CommandImpl.valid?:
bool CommandImpl とその状態 (パラメータを含む) をすぐに実行できるかどうかを調べます。
オーバーライド
実行前にコマンドの状態について最終的な実行時チェックを必要とするサブクラスは、このゲッターをオーバーライドする必要があります。これらの実装は、論理値、計算した任意の値、および super.valid? を返します。
(メソッド)
public | {CommandImpl.do-command allow-prompt?:bool = true}:void |
コマンド プロトコルを実行します。
説明
これは、通常このコマンドの呼び出しに使用されるメソッドです。
コマンド プロトコルは、パラメータの入力を促し (オプション)、パラメータを検証し、実行するという構成になっています。
要求されたコマンドを実行できなかった場合は、
CommandException をスローします。
allow-prompt?: ブール値。
true の場合で、このコマンドのプロンプトが存在する場合、ユーザーはパラメータを変更し、コマンドの実行の前に確認するように促されます。プロンプトが定義されていない場合、この引数は無視されます (この詳細については、
CommandImpl.has-prompt? を参照してください)。
オーバーライド
(メソッド)
protected abstract | {CommandImpl.execute}:void |
(メソッド)
public | {CommandImpl.prepare}:void |
使用する CommandImpl を準備します。
説明
このメソッドは、常に、コマンドを操作または実行する任意のアプリケーション コード ブロックの前に呼び出す必要があります。たとえば、このメソッドは、コマンドが適切に更新され、その既定値にリセットされていることを保証します。
オーバーライド
実装では、メソッドの最初でこのメソッドのスーパー実装を呼び出す必要があります。
(メソッド)
protected | {CommandImpl.prompt}:bool |
コマンドを実行する前に、ユーザーから最終的なデータや確認を得ます。
戻り値
ユーザーがデータ提供後にコマンドの継続を選択した場合は true です。それ以外の場合は false です。
オーバーライド
このメソッドが実装されている場合、
CommandImpl.has-prompt? も同様にオーバーライドする必要があります。また、コマンドが
valid? である場合にこのメソッドによって
true だけが返されることも保証する必要があります。
(メソッド)
protected | {CommandImpl.update-completed}:void |
Command.update が完了したときに呼び出されます。
説明
このメソッドは、
Command.update の呼び出しが完了した後で、コマンドが (潜在的に) 新しい状態についてオブザーバーに通知する前に、直接呼び出されます。 これは、サブクラスがコマンドの状態が変更されたことを認識して、
Command.note-state-changed を呼び出す最後の機会を示します。また、これは、サブクラスが新しく更新されたコマンドの任意の要素をキャッシュする機会でもあります。
このメソッドは、通常、サブクラスからは呼び出されません。
オーバーライド
実装では、パブリックに可視であるコマンドの状態をこのメソッドで
変更すべきではないことに注意してください。また、このメソッド内からの
Command.request-update の呼び出しでは何も行なわれません。
実装では、通常、このメソッドの最初に
super.update-completed を呼び出す必要があります。