3.2.4 レンディションのプロパティ

ここでは,レンディションのプロパティについて説明します。なお,この説明に出てくるメソッドについては,「6. Java クラスライブラリの機能」およびマニュアル「DocumentBroker Version 3 クラスライブラリ Java リファレンス」を参照してください。

レンディションには,プロパティを設定して管理できます。ただし,レンディションのプロパティとしてユーザ定義プロパティは設定できません。レンディションに設定されているプロパティは,次の4種類です。

これらのプロパティは,属性検索条件として指定したり,検索結果一覧の情報として取得したりすることはできません。

レンディションタイプとコンテンツのファイル名を設定したレンディションのプロパティの管理例を次の図に示します。

図3-10 レンディションのプロパティの管理例

[図データ]

次に,レンディションの各プロパティについて,説明します。

<この項の構成>
(1) レンディションタイプを表すプロパティ(dbrProp_RenditionTypeプロパティ)
(2) ファイル名を表すプロパティ(dbrProp_RetrievalNameプロパティ)
(3) レンディション状態を表すプロパティ(dbrProp_RenditionStatusプロパティ)
(4) dbrProp_RenditionStatusプロパティとメソッドの関係
(5) レンディションのコンテンツ種別を表すプロパティ(dbrProp_ContentTypeプロパティ)

(1) レンディションタイプを表すプロパティ(dbrProp_RenditionTypeプロパティ

レンディション管理モデルでは,同じレンディションタイプを重複して登録できません。ただし,"タイプ/サブタイプ ( コメント )"などの形式でレンディションタイプを指定できるため,同じ拡張子のファイルでもレンディションタイプを重複させないで登録できます。例えば,図3-10の場合,「図A」というバージョンなし文書のマスタレンディションとサブレンディションに,同じGIF形式でも異なる解像度(マスタレンディションは600dpi,サブレンディションは300dpi)で保存したコンテンツを登録しています。このため,"image/gif ( 600 )"および"image/gif ( 300 )"のように,コメントまで指定したレンディションタイプを設定して二つのGIF形式のレンディションを登録しています。

レンディションタイプは,文書の作成時,コンテンツの更新時またはレンディションの追加時に指定します。このとき指定したレンディションタイプが,dbrProp_RenditionTypeプロパティの値として設定されます。

文書の作成時,コンテンツの更新時またはレンディションの追加時に,レンディションタイプの指定を省略すると,Java クラスライブラリは,レンディション定義ファイルの定義に従ってコンテンツのファイルの拡張子から判断して,レンディションタイプを自動的に設定します。レンディション定義ファイルについては,「7.6.2 レンディション定義ファイル」を参照してください。ただし,この例のように拡張子が同じでもファイルの保存状態などによって別々のレンディションに登録したい場合は,ファイルの拡張子からは判断できないので,コメントまで指定したレンディションタイプを明示的に指定してください。

なお,dbrProp_RenditionTypeプロパティは,STR型のプロパティです。

(2) ファイル名を表すプロパティ(dbrProp_RetrievalNameプロパティ

レンディションタイプのほかに,各レンディションには,ファイル名を表すdbrProp_RetrievalNameプロパティを設定できます。

ファイル名は,文書の作成時,コンテンツの更新時またはレンディションの追加時に指定します。このとき指定したファイル名が,dbrProp_RetrievalNameプロパティの値として設定されます。図3-10の例では,マスタレンディションにはzuA600.gif,サブレンディションにはzuA300.gifという値が設定されています。

なお,dbrProp_RetrievalNameプロパティは,STR型のプロパティです。

(3) レンディション状態を表すプロパティ(dbrProp_RenditionStatusプロパティ

マルチレンディション文書では,同じ内容を持つ複数のレンディションタイプのコンテンツを,まとめて一つの文書に登録して管理できます。このため,マスタレンディションとサブレンディションは,常に同じ内容にしておく必要があります。マスタレンディションのコンテンツを更新した場合には,サブレンディションのコンテンツも更新する必要があります。

マスタレンディションとサブレンディションのdbrProp_RenditionStatusプロパティの値について説明します。

マスタレンディションの場合
マスタレンディションのdbrProp_RenditionStatusプロパティの値は常にDbjDef.RENDSTATUS_MASTERRENDです。
サブレンディションの場合
サブレンディションのdbrProp_RenditionStatusプロパティの値は,メソッドの実行によって遷移します。また,サブレンディションのdbrProp_RenditionStatusプロパティの値は,状態フラグと変換フラグの組み合わせで表されます。
状態フラグ
マスタレンディションに対するサブレンディションの更新状態を示す値です。状態フラグの値は,DocumentBrokerによって自動的に設定されます。ユーザは状態フラグの値を変更できません。
変換フラグ
DocumentBroker Rendering Optionを使用する場合に,サブレンディションのコンテンツをレンディション変換によって自動作成するかどうかを示す値です。また,変換フラグには,レンディション変換でエラーが発生したことを示す値も設定されます。変換フラグの値は,DocumentBrokerによって自動的に設定されます。ユーザは変換フラグの値を変更できます。
なお,変換フラグは,DocumentBroker Rendering Optionを使用しない場合は使用しません。

なお,dbrProp_RenditionStatusプロパティは,INT型のプロパティです。

次に,サブレンディションの状態フラグと変換フラグの値について説明します。

(a) 状態フラグの値

サブレンディションの状態フラグの値は,マスタレンディションまたはサブレンディションのコンテンツの更新時に,DocumentBrokerによって自動的に設定されます。サブレンディションの状態フラグの値を次の表に示します。

表3-1 サブレンディションの状態フラグの値

状態フラグを表す定数説明
DbjDef.RENDSTATUS_NO_SUBRENDマスタレンディションのコンテンツは登録済みですが,サブレンディションのコンテンツが登録されていません。
DbjDef.RENDSTATUS_SUBREND_EXISTマスタレンディションとサブレンディションの更新状態が一致しています。
DbjDef.RENDSTATUS_MASTERREND_UPDATEマスタレンディションとサブレンディションの更新状態が不一致です。マスタレンディションのコンテンツは更新されていますが,サブレンディションのコンテンツが更新されていません。
(b) 変換フラグの値

サブレンディションの変換フラグの値は,文書の作成時,コンテンツの更新時またはレンディションの追加時に,コンテンツのファイルパスの指定の有無に応じてDocumentBrokerが自動的に設定します。DocumentBroker Rendering Optionによるレンディション変換実行時にエラーが発生した場合には,変換エラーを示す値が設定されます。

変換フラグの値をユーザが変更する場合は,レンディションのプロパティを更新するDbjObj#writeRenditionPropertiesメソッドを使用します。

サブレンディションの変換フラグの値を次の表に示します。

表3-2 サブレンディションの変換フラグの値

変換フラグを表す定数説明
DbjDef.RENDSTATUS_CONVERT_NOTREQUIREDDocumentBroker Rendering Optionによるレンディション変換の対象になりません。
レンディション変換の対象にしないサブレンディションに対して指定してください。
DbjDef.RENDSTATUS_CONVERT_REQUIREDDocumentBroker Rendering Optionによるレンディション変換の対象になります。
レンディション変換の対象にする場合に指定してください。
DbjDef.RENDSTATUS_CONVERT_ERRORDocumentBroker Rendering Optionで変換エラーが発生しました。
DocumentBroker Rendering Optionが設定する値です。

なお,状態フラグの値によって,変換フラグが取る値が異なります。

状態フラグと変換フラグの組み合わせについて,次の表に示します。

表3-3 状態フラグと変換フラグの組み合わせ

状態フラグを表す定数変換フラグを表す定数
DbjDef.RENDSTATUS_SUBREND_EXIST
  • DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED
  • DbjDef.RENDSTATUS_CONVERT_REQUIRED
DbjDef.RENDSTATUS_NO_SUBREND
  • DbjDef.RENDSTATUS_CONVERT_REQUIRED
  • DbjDef.RENDSTATUS_CONVERT_ERROR
DbjDef.RENDSTATUS_MASTERREND_UPDATE
  • DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED
  • DbjDef.RENDSTATUS_CONVERT_REQUIRED
  • DbjDef.RENDSTATUS_CONVERT_ERROR

例えば,サブレンディションの文書のアップロード情報でコンテンツのファイルパスを指定しなかった(nullを指定した)場合,DocumentBroker Rendering Optionによるレンディション変換を要求しない変換フラグ(DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED)を指定することはできません。

また,文書のアップロード情報でコンテンツのファイルパスを指定して更新したいサブレンディションに対しては,マスタレンディションとサブレンディションの更新状態が不一致(DbjDef.RENDSTATUS_MASTERREND_UPDATE)でも,DocumentBroker Rendering Optionによるレンディション変換を要求しない変換フラグ(DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED)を指定できます。

(4) dbrProp_RenditionStatusプロパティとメソッドの関係

dbrProp_RenditionStatusプロパティの値とメソッドの関係について説明します。

次のメソッドについて説明します。

(a) dbrProp_RenditionStatusプロパティの値を参照するメソッド

dbrProp_RenditionStatusプロパティの値は,次のメソッドによるレンディション一覧の取得時に参照できます。

(b) dbrProp_RenditionStatusプロパティの値を遷移させるメソッド

dbrProp_RenditionStatusプロパティの値は,次のメソッドの実行時に,DocumentBrokerが自動的に値を設定することによって,遷移します。

DbjObj#changeMasterRenditionメソッドによるdbrProp_RenditionStatusプロパティの値の遷移については,「(d) dbrProp_RenditionStatusプロパティの値によって制限されるメソッド」を参照してください。

DbjObj#addRenditionメソッドおよびDbjObj#uploadContentsメソッドによるdbrProp_RenditionStatusプロパティの値の遷移を,次の図に示します。図中の(1)から(8)の番号は,表3-4から表3-6の説明中の番号と対応しています。

図3-11 メソッドによるdbrProp_RenditionStatusプロパティの値の遷移

[図データ]

図で示した遷移の詳細を,メソッドごとに説明します。

(c) dbrProp_RenditionStatusプロパティの変換フラグを変更するメソッド

変換フラグの値をユーザが変更する場合は,DbjObj#writeRenditionPropertiesメソッドを使用します。

設定できる値は次のどちらかです。

ただし,次の場合は値を設定できません。

DbjObj#writeRenditionPropertiesメソッドで変換フラグを設定できない場合
  • 状態フラグがDbjDef.RENDSTATUS_NO_SUBRENDの場合,変換フラグにDbjDef.RENDSTATUS_CONVERT_NOTREQUIREDは設定できません。
    状態フラグがDbjDef.RENDSTATUS_NO_SUBRENDの場合は,サブレンディションのコンテンツをDbjObj#uploadContentsメソッドで更新すると,変換フラグをDbjDef.RENDSTATUS_CONVERT_NOTREQUIREDに遷移させることができます。
  • 変換フラグがDbjDef.RENDSTATUS_CONVERT_ERRORの場合,変換フラグにDbjDef.RENDSTATUS_CONVERT_NOTREQUIREDまたはDbjDef.RENDSTATUS_CONVERT_REQUIREDは設定できません。
    変換フラグがDbjDef.RENDSTATUS_CONVERT_ERRORの場合は,エラーの要因を取り除いたコンテンツを準備して,マスタレンディションをDbjObj#uploadContentsメソッドで再び更新してください。または,マスタレンディションのコンテンツを基に,別のレンディションタイプのファイルをユーザが作成して,DbjObj#uploadContentsメソッドでサブレンディションのコンテンツとして登録してください。
(d) dbrProp_RenditionStatusプロパティの値によって制限されるメソッド

状態フラグと変換フラグの組み合わせによっては,DbjObj#changeMasterRenditionメソッドの実行が制限されます。制限されるのは,次の場合です。

DbjObj#changeMasterRenditionメソッドの実行が制限される場合
  • 状態フラグがDbjDef.RENDSTATUS_NO_SUBRENDの場合,DbjObj#changeMasterRenditionメソッドは実行できません。
  • 状態フラグがDbjDef.RENDSTATUS_MASTERREND_UPDATEの場合,変換フラグがDbjDef.RENDSTATUS_CONVERT_REQUIREDまたはDbjDef.RENDSTATUS_CONVERT_ERRORのときは,DbjObj#changeMasterRenditionメソッドは実行できません。

これ以外の組み合わせでは,DbjObj#changeMasterRenditionメソッドを実行してマスタレンディションを変更すると,それまでサブレンディションだったレンディションはマスタレンディションに変更されて,そのレンディションのdbrProp_RenditionStatusプロパティの値はDbjDef.RENDSTATUS_MASTERRENDに遷移します。

(e) DocumentBroker Rendering Optionによるサブレンディション更新の例

dbrProp_RenditionStatusプロパティの値が遷移する例として,DocumentBroker Rendering Optionによるサブレンディション更新の例を次の図に示します。

図3-12 DocumentBroker Rendering Optionによるサブレンディション更新の例

[図データ]

図について説明します。

  1. 図中の文書は,マスタレンディションのコンテンツとしてWord形式のファイル「A.doc」,サブレンディションのコンテンツとしてPDF形式のファイル「A.pdf」を持つ,バージョンなし文書です。このとき,マスタレンディションとサブレンディションの内容は一致しています。状態フラグはDbjDef.RENDSTATUS_SUBREND_EXISTです。
  2. DbjObj#uploadContentsメソッドによって,マスタレンディションのコンテンツを「B.doc」に更新します。このとき,マスタレンディションとサブレンディションの状態が不一致になるため,サブレンディションの状態フラグがDbjDef.RENDSTATUS_MASTERREND_UPDATEに遷移します。
  3. DbjObj#writeRenditionPropertiesメソッドによって,サブレンディションのdbrProp_RenditionStatusプロパティの変換フラグに,DbjDef.RENDSTATUS_CONVERT_REQUIREDを設定します。
  4. DocumentBroker Rendering Optionによってレンディション変換を実行します。3.で変換フラグにDbjDef.RENDSTATUS_CONVERT_REQUIREDを設定したサブレンディションは,レンディション変換の対象になります。レンディション変換は,マスタレンディションのコンテンツ「B.doc」を基に実行されます。
  5. サブレンディションのコンテンツとして,マスタレンディションの「B.doc」を基にレンディション変換したコンテンツ「B.pdf」が登録されます。このとき,サブレンディションの状態フラグは,DbjDef.RENDSTATUS_SUBREND_EXISTに遷移します。

(5) レンディションのコンテンツ種別を表すプロパティ(dbrProp_ContentTypeプロパティ

レンディションごとのコンテンツの種別は,dbrProp_ContentTypeプロパティによって知ることができます。コンテンツの種別から,レンディションのコンテンツが次のどれかを知ることができます。

このプロパティは,Integer32型の4バイトの値として表されます。

ユーザはdbrProp_ContentTypeプロパティを設定できません。dbrProp_ContentTypeプロパティを参照する場合は,DbjObj#getRenditionListメソッドを使用します。

dbrProp_ContentTypeの値とコンテンツ種別の関係を次の表に示します。

表3-7 dbrProp_ContentTypeの値とコンテンツ種別の関係

dbrProp_ContentTypeの値対応する値コンテンツ種別
DBR_CONTENTTYPE_CONTENT0ContentTransferオブジェクト(シングルファイル文書であるコンテンツ)です。
DBR_CONTENTTYPE_REFERENCE3ContentReferenceオブジェクト(リファレンスファイル文書であるコンテンツ)です。
DBR_CONTENTTYPE_OTHER-1上記以外のコンテンツを持つオブジェクトです。