パッケージ org.opengion.hayabusa.report2

# クラス SOfficeProcess

java.lang.Object
org.opengion.hayabusa.report2.SOfficeProcess

直系の既知のサブクラス:
  `SOfficeProcessTcp`

public class SOfficeProcess extends Object
OpenOfficeのプロセスを表すクラスです。 bootstrap()メソッドが呼ばれたタイミングでsoffice.binのプロセスを生成します。 soffice.binのプロセスを引数なしで実装した場合、通常は各ユーザーで1プロセスしか 生成されないため、-env:UserInstallationの引数を指定することで、仮想的に別ユーザー として起動しています。 この"ユーザー"を表すキーは、コンストラクタの引数のidです。 また、この仮想ユーザーで起動した場合、初回起動時にユーザー登録を促す画面が立ち上がります。 これを回避するため、デフォルトの環境ファイルをプロセス生成前にコピーすることで、認証済みの 状態で立ち上がるようにしています。 起動したプロセスとの通知は名前付きパイプで行われます。パイプ名は、"env"+コンストラクタのidです。 プロセス起動と、名前付きパイプでの接続は非同期で行われます。 プロセス起動後、60秒経過しても接続できない場合は、BootstrapExceptionが発生します。

導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `ENV_DIR`
  環境設定のパス
  `static final String`
  `OFFICE_HOME`
  OOoのインストールディレクトリ

- ## コンストラクタの概要

  コンストラクタ
  修飾子
  コンストラクタ
  説明
  `protected`
  `SOfficeProcess(String id)`
  コンストラクタです。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `protected void`
  `bootstrap()`
  OOoへの接続を行います。
  `void`
  `close()`
  プロセスを終了します。
  `protected String`
  `getConnParam(String key)`
  Pipe名をキーにOpenOfficeのプロセスに接続するための文字列を生成します。
  `com.sun.star.frame.XDesktop`
  `getDesktop()`
  デスクトップインスタンスを返します。
  `com.sun.star.frame.XDispatchHelper`
  `getDispatcher()`
  OpenOfficeのローカルコンポーネントコンテキストを返します。
  `protected String`
  `getProcParam(String key)`
  Pipe名をキーにOpenOfficeのプロセスを生成するためのパラメーター文字列を生成します。
  `String`
  `getTempPath()`
  このプロセスに対して固有に使用できる一時ファイルのパスを指定します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## フィールド詳細

  - ### OFFICE_HOME

    public static final String OFFICE_HOME
    OOoのインストールディレクトリ

  - ### ENV_DIR

    public static final String ENV_DIR
    環境設定のパス

- ## コンストラクタの詳細

  - ### SOfficeProcess

    protected SOfficeProcess(String id)
    コンストラクタです。
    パラメータ:
      `id` - プロセスID
    変更履歴:
      4.3.0.0 (2008/07/15) 設定ファイルを各コンテキストごとに置くように変更

- ## メソッドの詳細

  - ### bootstrap

    protected void bootstrap()
    OOoへの接続を行います。
    変更履歴:
      5.0.0.0 (2009/08/03) Linux対応(パイプ名に":"が含まれていると接続できない), 5.1.7.0 (2010/06/01) TCP接続対応

  - ### getConnParam

    protected String getConnParam(String key)
    Pipe名をキーにOpenOfficeのプロセスに接続するための文字列を生成します。
    パラメータ:
      `key` - Pipe名
    戻り値:
      接続文字列
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getDesktop

    public com.sun.star.frame.XDesktop getDesktop()
    デスクトップインスタンスを返します。
    戻り値:
      デスクトップインスタンス

  - ### close

    public void close()
    プロセスを終了します。 また、同時に環境設定用のファイルも削除します。
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getProcParam

    protected String getProcParam(String key)
    Pipe名をキーにOpenOfficeのプロセスを生成するためのパラメーター文字列を生成します。
    パラメータ:
      `key` - Pipe名
    戻り値:
      プロセス生成パラメーター
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getDispatcher

    public com.sun.star.frame.XDispatchHelper getDispatcher()
    OpenOfficeのローカルコンポーネントコンテキストを返します。
    戻り値:
      ローカルコンポーネントコンテキスト
    変更履歴:
      5.1.7.0 (2010/06/01) 新規作成, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getTempPath

    public String getTempPath()
    このプロセスに対して固有に使用できる一時ファイルのパスを指定します。
    戻り値:
      一時ファイルのパス
    変更履歴:
      5.1.7.0 (2010/06/01) 新規作成
    このﾒｿｯﾄﾞは、nullを返しません