クラス 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
    環境設定のパス
    static final String
    OOoのインストールディレクトリ
  • コンストラクタの概要

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    コンストラクタです。
  • メソッドの概要

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

    クラスから継承されたメソッド 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接続対応, 8.5.4.2 (2024/01/12) PMD 7.0.0 ExceptionAsFlowControl 対応
    • 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を返しません