xfy 1.3 の java API の実験: 002 (InstructionContext)
xfy 1.3 の java API の実験: 002 (InstructionContext)
今回は、public class InstructionContext extends WrapperContext.
http://homepage2.nifty.com/youichi_kato/src.html
xfy -1.3 の java API の調査 InstructionContext (2007-01-28)
にソースとスクリーンショットを置いた。
これは、インストラクションを作るときの基本情報源のデータのようだ。
ソース XML にアクセスしようとしたら、ここからたどっていくことになる。
このクラス特有のメソッドは以下のものがある。
void clear()
このコンテキストに設定されている変数およびXMLソース情報をクリアします。
Value getVariable(Name name)
指定された変数の値を取得します。
boolean hasVariable(Name name)
指定された名前の変数が存在するかしないかを返します。
void setSource(XmlSource source)
このコンテキストのXMLソース情報を設定します。
void setVariable(Name name, Value value)
このコンテキストに対して変数を設定します。
これらはちょっと まだ今はよく判らない。
継承されたメソッドは以下のものがある。
Context getBaseContext()
コンテキストを新しく作成するときに、作成元となったコンテキスト(ベースコンテキスト)を返します。
Node getNode()
このコンテキストでのコンテキストノードを返します。
Value getPosition()
このコンテキストのコンテキストポジションを、1からはじまる値で返します。
Value getSize()
このコンテキストのコンテキストサイズの値を返します。
Value getVariable(Name name)
指定された変数の値を取得します。
Name[] getVariableNames()
このコンテキストのスコープに存在するすべての変数名を返します。
boolean hasVariable(Name name)
指定された名前の変数が存在するかしないかを返します。
boolean isValid()
このコンテキストが有効か無効かを返します。
まずは、
getNode(), getPosition(),getSize(), getVariable(Name name), getVariableNames(), hasVariable(Name name)
を試してみよう。
public void execute() throws CommandException {
final StringBuilder sb = new StringBuilder();
try {
sb.append("InstructionContext.¥n");
sb.append(" getNode()=[" + this.context.getNode() + "]¥n");
sb.append(" getPosition()=[" + this.context.getPosition() + "]¥n");
sb.append(" getSize()=[" + this.context.getSize() + "]¥n");
Name[] names = this.context.getVariableNames();
sb.append(" getVariableNames() size=" + names.length + "¥n");
for (int i = 0; i < names.length; i++) {
sb.append(" [" + i + "]" + names[i].toString() + "]¥n");
}
}
この sb.toText() を表示 させるようなインストラクションをつくり、実行させた画面結果がページ先頭の画像だ。
getNode() は、インストラクション実行がされた ソースXML の Node を返すようだ。
次回は、Node クラスの API の実験を加えて、Node クラスの詳細を調べよう。
Node の使い方がわかれば、ソースDOM は自在に参照/編集ができるようになるかもしれない。
getPosition()、getSize() はそれなりの値が返ってきているが、意味や使い方は不明。
getValiableNames() は xvcd:variable で宣言した変数が取得できるもののようだ。
xvcd ファイル中に同時に記載した xvcd:user-data や instruction:variable は、このメソッドの返り値には含まれていないから。
« 感想: 朧の森に棲む鬼 | トップページ | 納豆騒動を kizasi で確かめてみる その3 »
この記事へのコメントは終了しました。
コメント