ここでは,レンディションのプロパティについて説明します。なお,この説明に出てくるメソッドについては,「6. Java クラスライブラリの機能」およびマニュアル「DocumentBroker Version 3 クラスライブラリ Java リファレンス」を参照してください。
レンディションには,プロパティを設定して管理できます。ただし,レンディションのプロパティとしてユーザ定義プロパティは設定できません。レンディションに設定されているプロパティは,次の4種類です。
これらのプロパティは,属性検索条件として指定したり,検索結果一覧の情報として取得したりすることはできません。
レンディションタイプとコンテンツのファイル名を設定したレンディションのプロパティの管理例を次の図に示します。
図3-10 レンディションのプロパティの管理例
次に,レンディションの各プロパティについて,説明します。
レンディション管理モデルでは,同じレンディションタイプを重複して登録できません。ただし,"タイプ/サブタイプ ( コメント )"などの形式でレンディションタイプを指定できるため,同じ拡張子のファイルでもレンディションタイプを重複させないで登録できます。例えば,図3-10の場合,「図A」というバージョンなし文書のマスタレンディションとサブレンディションに,同じGIF形式でも異なる解像度(マスタレンディションは600dpi,サブレンディションは300dpi)で保存したコンテンツを登録しています。このため,"image/gif ( 600 )"および"image/gif ( 300 )"のように,コメントまで指定したレンディションタイプを設定して二つのGIF形式のレンディションを登録しています。
レンディションタイプは,文書の作成時,コンテンツの更新時またはレンディションの追加時に指定します。このとき指定したレンディションタイプが,dbrProp_RenditionTypeプロパティの値として設定されます。
文書の作成時,コンテンツの更新時またはレンディションの追加時に,レンディションタイプの指定を省略すると,Java クラスライブラリは,レンディション定義ファイルの定義に従ってコンテンツのファイルの拡張子から判断して,レンディションタイプを自動的に設定します。レンディション定義ファイルについては,「7.6.2 レンディション定義ファイル」を参照してください。ただし,この例のように拡張子が同じでもファイルの保存状態などによって別々のレンディションに登録したい場合は,ファイルの拡張子からは判断できないので,コメントまで指定したレンディションタイプを明示的に指定してください。
なお,dbrProp_RenditionTypeプロパティは,STR型のプロパティです。
レンディションタイプのほかに,各レンディションには,ファイル名を表すdbrProp_RetrievalNameプロパティを設定できます。
ファイル名は,文書の作成時,コンテンツの更新時またはレンディションの追加時に指定します。このとき指定したファイル名が,dbrProp_RetrievalNameプロパティの値として設定されます。図3-10の例では,マスタレンディションにはzuA600.gif,サブレンディションにはzuA300.gifという値が設定されています。
なお,dbrProp_RetrievalNameプロパティは,STR型のプロパティです。
マルチレンディション文書では,同じ内容を持つ複数のレンディションタイプのコンテンツを,まとめて一つの文書に登録して管理できます。このため,マスタレンディションとサブレンディションは,常に同じ内容にしておく必要があります。マスタレンディションのコンテンツを更新した場合には,サブレンディションのコンテンツも更新する必要があります。
マスタレンディションとサブレンディションのdbrProp_RenditionStatusプロパティの値について説明します。
なお,dbrProp_RenditionStatusプロパティは,INT型のプロパティです。
次に,サブレンディションの状態フラグと変換フラグの値について説明します。
サブレンディションの状態フラグの値は,マスタレンディションまたはサブレンディションのコンテンツの更新時に,DocumentBrokerによって自動的に設定されます。サブレンディションの状態フラグの値を次の表に示します。
表3-1 サブレンディションの状態フラグの値
状態フラグを表す定数 | 説明 |
---|---|
DbjDef.RENDSTATUS_NO_SUBREND | マスタレンディションのコンテンツは登録済みですが,サブレンディションのコンテンツが登録されていません。 |
DbjDef.RENDSTATUS_SUBREND_EXIST | マスタレンディションとサブレンディションの更新状態が一致しています。 |
DbjDef.RENDSTATUS_MASTERREND_UPDATE | マスタレンディションとサブレンディションの更新状態が不一致です。マスタレンディションのコンテンツは更新されていますが,サブレンディションのコンテンツが更新されていません。 |
サブレンディションの変換フラグの値は,文書の作成時,コンテンツの更新時またはレンディションの追加時に,コンテンツのファイルパスの指定の有無に応じてDocumentBrokerが自動的に設定します。DocumentBroker Rendering Optionによるレンディション変換実行時にエラーが発生した場合には,変換エラーを示す値が設定されます。
変換フラグの値をユーザが変更する場合は,レンディションのプロパティを更新するDbjObj#writeRenditionPropertiesメソッドを使用します。
サブレンディションの変換フラグの値を次の表に示します。
表3-2 サブレンディションの変換フラグの値
変換フラグを表す定数 | 説明 |
---|---|
DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED | DocumentBroker Rendering Optionによるレンディション変換の対象になりません。 レンディション変換の対象にしないサブレンディションに対して指定してください。 |
DbjDef.RENDSTATUS_CONVERT_REQUIRED | DocumentBroker Rendering Optionによるレンディション変換の対象になります。 レンディション変換の対象にする場合に指定してください。 |
DbjDef.RENDSTATUS_CONVERT_ERROR | DocumentBroker Rendering Optionで変換エラーが発生しました。 DocumentBroker Rendering Optionが設定する値です。 |
なお,状態フラグの値によって,変換フラグが取る値が異なります。
状態フラグと変換フラグの組み合わせについて,次の表に示します。
表3-3 状態フラグと変換フラグの組み合わせ
状態フラグを表す定数 | 変換フラグを表す定数 |
---|---|
DbjDef.RENDSTATUS_SUBREND_EXIST |
|
DbjDef.RENDSTATUS_NO_SUBREND |
|
DbjDef.RENDSTATUS_MASTERREND_UPDATE |
|
例えば,サブレンディションの文書のアップロード情報でコンテンツのファイルパスを指定しなかった(nullを指定した)場合,DocumentBroker Rendering Optionによるレンディション変換を要求しない変換フラグ(DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED)を指定することはできません。
また,文書のアップロード情報でコンテンツのファイルパスを指定して更新したいサブレンディションに対しては,マスタレンディションとサブレンディションの更新状態が不一致(DbjDef.RENDSTATUS_MASTERREND_UPDATE)でも,DocumentBroker Rendering Optionによるレンディション変換を要求しない変換フラグ(DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED)を指定できます。
dbrProp_RenditionStatusプロパティの値とメソッドの関係について説明します。
次のメソッドについて説明します。
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プロパティの値の遷移
図で示した遷移の詳細を,メソッドごとに説明します。
表3-4 DbjObj#addRenditionメソッドによって設定されるdbrProp_RenditionStatusプロパティの値
コンテンツのファイル パスの指定 | 変換フラグ | 状態フラグ |
---|---|---|
あり((1)の遷移) | DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED | DbjDef.RENDSTATUS_SUBREND_EXIST |
なし((2)の遷移) (nullを指定した場合) | DbjDef.RENDSTATUS_CONVERT_REQUIRED | DbjDef.RENDSTATUS_NO_SUBREND |
表3-5 DbjObj#uploadContentsメソッドによるdbrProp_RenditionStatusプロパティの値の遷移(マスタレンディションを更新する場合)
メソッドを実行した時点の 状態フラグ | 変換フラグの遷移 | メソッドを実行したあとの 状態フラグ |
---|---|---|
DbjDef.RENDSTATUS_SUBREND_EXIST((3)の遷移) |
| DbjDef.RENDSTATUS_MASTERREND_UPDATE |
| ||
DbjDef.RENDSTATUS_MASTERREND_UPDATE((4)の遷移) |
| DbjDef.RENDSTATUS_MASTERREND_UPDATE (遷移しません) |
| ||
| ||
DbjDef.RENDSTATUS_NO_SUBREND((5)の遷移) |
| DbjDef.RENDSTATUS_NO_SUBREND (遷移しません) |
|
注※ DocumentBroker Rendering Optionでレンディション変換エラーが起きたあとにマスタレンディションを更新し直す場合は,更新するコンテンツにエラーの要因が残っていないかどうか確認してください。または,マスタレンディションのコンテンツを基に,別のレンディションタイプのファイルをユーザが作成して,サブレンディションのコンテンツとして登録してください。
表3-6 DbjObj#uploadContentsメソッドによるdbrProp_RenditionStatusプロパティの値の遷移(サブレンディションを更新する場合)
メソッドを実行した時点の 状態フラグ | 変換フラグの遷移 | メソッドを実行したあとの 状態フラグ |
---|---|---|
DbjDef.RENDSTATUS_SUBREND_EXIST((6)の遷移) |
| DbjDef.RENDSTATUS_SUBREND_EXIST (遷移しません) |
| ||
DbjDef.RENDSTATUS_MASTERREND_UPDATE((7)の遷移) | DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED | DbjDef.RENDSTATUS_SUBREND_EXIST |
DbjDef.RENDSTATUS_NO_SUBREND((8)の遷移) | DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED | DbjDef.RENDSTATUS_SUBREND_EXIST |
変換フラグの値をユーザが変更する場合は,DbjObj#writeRenditionPropertiesメソッドを使用します。
設定できる値は次のどちらかです。
ただし,次の場合は値を設定できません。
状態フラグと変換フラグの組み合わせによっては,DbjObj#changeMasterRenditionメソッドの実行が制限されます。制限されるのは,次の場合です。
これ以外の組み合わせでは,DbjObj#changeMasterRenditionメソッドを実行してマスタレンディションを変更すると,それまでサブレンディションだったレンディションはマスタレンディションに変更されて,そのレンディションのdbrProp_RenditionStatusプロパティの値はDbjDef.RENDSTATUS_MASTERRENDに遷移します。
dbrProp_RenditionStatusプロパティの値が遷移する例として,DocumentBroker Rendering Optionによるサブレンディション更新の例を次の図に示します。
図3-12 DocumentBroker Rendering Optionによるサブレンディション更新の例
図について説明します。
レンディションごとのコンテンツの種別は,dbrProp_ContentTypeプロパティによって知ることができます。コンテンツの種別から,レンディションのコンテンツが次のどれかを知ることができます。
このプロパティは,Integer32型の4バイトの値として表されます。
ユーザはdbrProp_ContentTypeプロパティを設定できません。dbrProp_ContentTypeプロパティを参照する場合は,DbjObj#getRenditionListメソッドを使用します。
dbrProp_ContentTypeの値とコンテンツ種別の関係を次の表に示します。
表3-7 dbrProp_ContentTypeの値とコンテンツ種別の関係
dbrProp_ContentTypeの値 | 対応する値 | コンテンツ種別 |
---|---|---|
DBR_CONTENTTYPE_CONTENT | 0 | ContentTransferオブジェクト(シングルファイル文書であるコンテンツ)です。 |
DBR_CONTENTTYPE_REFERENCE | 3 | ContentReferenceオブジェクト(リファレンスファイル文書であるコンテンツ)です。 |
DBR_CONTENTTYPE_OTHER | -1 | 上記以外のコンテンツを持つオブジェクトです。 |