UNO な値

UNO の値の取得方法を知っていればどの言語を利用しても同じことができるはずです。必要な値について取り上げます。

言語ごとの値の取得方法は別記。

Component Context

ルートオブジェクトであり全ての UNO コンポーネントインスタンス化時に渡されます。実体は css.uno.XComponentContext インターフェースです。あまり知られていませんが singleton が必要な時に getValueByName で名前のついた値を取得することもできます。

Service Manager

UNO コンポーネントインスタンス化するセントラルファクトリーサービスです。コンポーネントコンテキストの XComponentContext インターフェースの getServiceManager メソッドで取得できます。実体は css.lang.XMultiComponentFactory です。

サービスのインスタンス

XMultiComponentFactory インターフェースのメソッドを用いてコンポーネントインスタンス化します。このときインスタンス化したいコンポーネントを提供するサービス名を指定しますが、利用できるサービス名の一覧は getAvailableServiceNames メソッドの返り値として取得できます。これに含まれないサービス名はこのインターフェースからはインスタンス化できません。

Structs、Enums、Constants、例外

UNO IDL で定義された値は言語バインディングで用意された方法に従って利用します。

リスナー

イベント発生時になにかを実行するためにリスナーを利用します。リスナーの実体はインターフェースへの参照ですのでそのインターフェースを実装したクラスのインスタンスが必要になります。