(クラス)
SequenceBox へのオブジェクトの追加と関連したパラメータの解析を容易にするために設計されたクラス。
オーバーライド
SequenceBoxAddParser.process-add-args が呼び出される前に
SequenceBoxAddParser.box が正しく設定されていることを確認しますが、これは
SequenceBoxAddParser の実装によって行う必要があります。通常、これはファクトリーまたはコンストラクタで行われます。
SequenceBoxAddParser の実装におけるパフォーマンスを上げるために、
SequenceBoxAddParser クラスのインスタンスをキャッシュすることができます。そうすれば、
SequenceBox にオブジェクトが追加されるたびに新しいものを作成しなくても、そのインスタンスを再利用することができます。これが正しく機能するためには、
SequenceBoxAddParser.release をオーバーライドする必要があります。
キャッシュ方式でオブジェクトを追加するときは、次のように SequenceBox.add メソッドを実装する必要があります。
- すでに格納されているインスタンスがある場合は、SequenceBoxAddParser.box を設定し、そのインスタンスをストレージから削除することで、そのインスタンスを初期化します。そうでない場合は、新しいインスタンスを割り当てます。(サブクラスでもその他の初期化が必要な場合があります。)
- 通常どおり追加を続行します。
- SequenceBoxAddParser.release を呼び出し、インスタンスをストレージに返します。
フィールド protected SequenceBoxAddParser.box:
SequenceBox ={uninitialized-value-for-type SequenceBox}
フィールド protected SequenceBoxAddParser.graphic:
any
protected | {SequenceBoxAddParser.add-at-index}:#Graphic |
protected | {SequenceBoxAddParser.keyword-init-arg}:void |
protected | {SequenceBoxAddParser.non-keyword-init-arg a:any}:void |
public | {SequenceBoxAddParser.process-add-args g:any, ...}:#Graphic |
protected | {SequenceBoxAddParser.reinitialize}:void |
release: | 後続の追加操作で再利用できるように SequenceBoxAddParser インスタンスを解放します。 |
protected | {SequenceBoxAddParser.release}:void |
reset: | 新しい追加を解析するように既存の SequenceBoxAddParser を準備します。 |
protected | {SequenceBoxAddParser.reset}:void |
(フィールド)
protected SequenceBoxAddParser.box:
SequenceBox ={uninitialized-value-for-type SequenceBox}
(フィールド)
protected SequenceBoxAddParser.graphic:
any
(メソッド)
protected | {SequenceBoxAddParser.add-at-index}:#Graphic |
(メソッド)
protected | {SequenceBoxAddParser.keyword-init-arg}:void |
SequenceBox.add に渡された残余引数を処理します。
説明
既定の実装は、キーワード引数
index、
before、および
after を認識します。これらのキーワードは、
SequenceBox 内における新しいオブジェクトの絶対位置または既存の子に対する相対位置を記述するものです。
オーバーライド
サブクラスは通常、後で使用する予定のあるパラメータを記録するのにフィールドを使用します。たとえば、
Canvas はこのメカニズムを使用して、
x および
y キーワード引数を記録します。(
Canvas では、これらが新しいオブジェクトの位置を示します。)
(メソッド)
protected | {SequenceBoxAddParser.non-keyword-init-arg a:any}:void |
(メソッド)
public | {SequenceBoxAddParser.process-add-args g:any, ...}:#Graphic |
SequenceBox にオブジェクトを追加する操作と関連したすべての引数を処理し、最後にそのオブジェクトを追加します。
説明
(メソッド)
protected | {SequenceBoxAddParser.reinitialize}:void |
前の SequenceBox との関連付けの削除を含め、SequenceBoxAddParser を完全にリセットします。
説明
このメソッドは、SequenceBoxAddParser 再割り当てを回避するためにインスタンスをキャッシュするときに使用します。
オーバーライド
SequenceBoxAddParser.reinitialize をオーバーライドするときは、super.reinitialize を呼び出す必要があります。
(メソッド)
protected | {SequenceBoxAddParser.release}:void |
後続の追加操作で再利用できるように SequenceBoxAddParser インスタンスを解放します。
注意事項
この実装がサブクラスで呼び出される場合は、エラーがスローされます。すべてのサブクラスでこの実装をオーバーライドする必要があります。また、サブクラスの実装でスーパークラス メソッドを呼び出さないでください。
この実装では、self.reinitialize を呼び出し、キャッシュに self を返します。
オーバーライド
(メソッド)
protected | {SequenceBoxAddParser.reset}:void |
新しい追加を解析するように既存の SequenceBoxAddParser を準備します。
説明
オーバーライド
このメソッドは主として、
SequenceBox と
SequenceBoxAddParser の実装によって
SequenceBoxAddParser クラスのインスタンスをキャッシュする場合に役立ちます。通常は、追跡するすべてのパラメータを、それぞれの初期値にリセットする必要があります。また、
super.reset を呼び出すことも重要です。