第8章

Content Managementイベントとの連携動作

この章では、Content Management (CM)サブシステムの操作およびアクティビティに関連するイベントの処理方法について説明します。この章は、次の節から構成されています。

For more information    この章では、exteNd Directorイベントモデルおよびイベント処理について熟知していることを前提としています。詳細については、『exteNd Directorアプリケーションの開発』のイベントの操作に関する章を参照してください。

 
Top of page

CMイベントについて

CMイベントはexteNd Directorイベントモデルフレームワークの拡張子で、「状態変更イベント」、「イベントプロデューサ」、および「イベントリスナ」(拒否権付きリスナを含む)で構成されます。CMイベントのAPIは、次のパッケージに定義されています。

 
Top of section

CMイベントタイプ

APIは、ドキュメント、フォルダ、およびその他の要素をはじめ、データのインポートやエクスポートなどの一般的なアクティビティについての、CM操作に関連する一連の状態変更イベントを定義します。イベントIDは、個々のイベントクラスのほかにcom.sssw.cm.event.api.EbiConstantsインタフェースにも表示されます。さらに、状態変更定数がcom.sssw.fw.event.api.EboStateChangeEventに定義されています。

CMサブシステムに定義されているイベントのリストを次に示します。

イベントタイプ

操作

イベント定数

カテゴリ

追加されました

EVENT_ID_CATEGORY_ADDED

コンテンツが一覧表示されました

EVENT_ID_CATEGORY_CONTENTS_LISTED

コピーされました

EVENT_ID_CATEGORY_COPIED

移動されました

EVENT_ID_CATEGORY_MOVED

削除されました

EVENT_ID_CATEGORY_REMOVED

ドキュメントが削除されました

EVENT_ID_DOC_REMOVED_FROM_CATEGORY

メタデータが取得されました

EVENT_ID_CATEGORY_RETRIEVED

メタデータが更新されました

EVENT_ID_CATEGORY_UPDATED

データのエクスポート/インポート

データがエクスポートされました

EVENT_ID_DATA_EXPORTED

データがインポートされました

EVENT_ID_DATA_IMPORTED

ドキュメント

追加されました

EVENT_ID_DOC_ADDED

カテゴリに追加されました

EVENT_ID_DOC_ADDED_TO_CATEGORY

チェックインされました

EVENT_ID_DOC_CHECKED_IN

チェックアウトされました

EVENT_ID_DOC_CHECKED_OUT

コピーされました

EVENT_ID_DOC_COPIED

移動されました

EVENT_ID_DOC_MOVED

発行されました

EVENT_ID_DOC_PUBLISHED

削除されました

EVENT_ID_DOC_REMOVED

取得されました

EVENT_ID_DOC_RETRIEVED

ロールバックされました

EVENT_ID_DOC_ROLLED_BACK

チェックアウトが解除されました

EVENT_ID_DOC_UNCHECKED_OUT

ロック解除されました

EVENT_ID_DOC_UNLOCKED

発行解除されました

EVENT_ID_DOC_UNPUBLISHED

更新されました

EVENT_ID_DOC_UPDATED

リンクが追加されました

EVENT_ID_DOC_LINK_ADDED

リンクが削除されました

EVENT_ID_DOC_LINK_REMOVED

リンクが取得されました

EVENT_ID_DOC_LINK_RETRIEVED

リンクが更新されました

EVENT_ID_DOC_LINK_UPDATED

リンクが一覧表示されました

EVENT_ID_DOC_LINKS_LISTED

ドキュメントタイプ

追加されました

EVENT_ID_DOC_TYPE_ADDED

削除されました

EVENT_ID_DOC_TYPE_REMOVED

取得されました

EVENT_ID_DOC_TYPE_RETRIEVED

更新されました

EVENT_ID_DOC_TYPE_UPDATED

一覧表示されました

EVENT_ID_DOC_TYPES_LISTED

フィールドが一覧表示されました

EVENT_ID_DOC_TYPE_FIELDS_LISTED

フィールド

追加されました

EVENT_ID_DOC_FIELD_ADDED

ドキュメントタイプに追加されました

EVENT_ID_DOC_FIELD_ADDED_TO_TYPE

一覧表示されました

EVENT_ID_DOC_FIELDS_LISTED

削除されました

EVENT_ID_DOC_FIELD_REMOVED

ドキュメントタイプから削除されました

EVENT_ID_DOC_FIELD_REMOVED_FROM_TYPE

取得されました

EVENT_ID_DOC_FIELD_RETRIEVED

更新されました

EVENT_ID_DOC_FIELD_UPDATED

フォルダ

追加されました

EVENT_ID_FOLDER_ADDED

コンテンツが一覧表示されました

EVENT_ID_FOLDER_CONTENTS_LISTED

コピーされました

EVENT_ID_FOLDER_COPIED

移動されました

EVENT_ID_FOLDER_MOVED

削除されました

EVENT_ID_FOLDER_REMOVED

取得されました

EVENT_ID_FOLDER_RETRIEVED

更新されました

EVENT_ID_FOLDER_UPDATED

レイアウトドキュメント記述子

追加されました

EVENT_ID_LLD_ADDED

スタイルが一覧表示されました

EVENT_ID_LLDS_LISTED

削除されました

EVENT_ID_LLD_REMOVED

取得されました

EVENT_ID_LLD_RETRIEVED

更新されました

EVENT_ID_LLD_UPDATED

レイアウトスタイル

追加されました

EVENT_ID_DOC_LAYOUT_STYLE_ADDED

削除されました

EVENT_ID_DOC_LAYOUT_STYLE_REMOVED

取得されました

EVENT_ID_DOC_LAYOUT_STYLE_RETRIEVED

更新されました

EVENT_ID_DOC_LAYOUT_STYLE_UPDATED

一覧表示されたスタイル

EVENT_ID_DOC_LAYOUT_STYLES_LISTED

ディレクトリエントリルックアップ

絶対パス(URL)順

EVENT_ID_LOOKUP_BY_ABSOLUTE

先祖および相対パス順

EVENT_ID_LOOKUP_BY_RELATIVE

CMリポジトリ

追加されました

EVENT_ID_REPOSITORY_ADDED

一覧表示されました

EVENT_ID_REPOSITORIES_LISTED

削除されました

EVENT_ID_REPOSITORY_REMOVED

取得されました

EVENT_ID_REPOSITORY_RETRIEVED

更新されました

EVENT_ID_REPOSITORY_UPDATED

クエリ/検索

ドキュメントクエリが実行されました

EVENT_ID_DOC_QUERY_EXECUTED

ドキュメント検索クエリが実行されました

EVENT_ID_DOC_SEARCH_QUERY_EXECUTED

Security

アクセスがチェックされました

EVENT_ID_ACCESS_CHECKED


管理アクセスがチェックされました

EVENT_ID_ADMIN_ACCESS_CHECKED

アクセスが削除されました

EVENT_ID_SECURITY_REMOVED

アクセスが取得されました

EVENT_ID_SECURITY_RETRIEVED

アクセスが設定されました

EVENT_ID_SECURITY_SET

 
Top of page

CM イベントの登録

この節には、次の節が含まれています。

 
Top of section

ディレクトリ要素をイベントに登録する

CMサブシステムのイベントサポートは、CMカテゴリ、フォルダ、およびドキュメントに基づきリスナの登録に簡易メソッドを提供します。メソッドは、EbiContentMgmtDelegateオブジェクトで利用できます。

リスナ簡易メソッド

購読先

addCategoryStateChangeListener()

すべてのカテゴリイベント

addDocumentStateChangeListener()

すべてのドキュメントイベント

addFolderStateChangeListener()

すべてのフォルダイベント

addVetoableCategoryStateChangeListener()

拒否権の操作機能を持つすべてのカテゴリイベント

addVetoableDocumentStateChangeListener()

拒否権の操作機能を持つすべてのドキュメントイベントを購読します。

addVetoableFolderStateChangeListener()

拒否権の操作機能を持つすべてのフォルダイベントを購読します。

たとえば、フォルダ操作に関連するすべてのイベントを購読する方法を次に示します。

  EbiContentMgmtDelegate cmgr =
    com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
  cmgr. addFolderStateChangeListener (myStateChangeListener);

 
Top of section

イベントタイプの指定

EbiContentMgmtDelegateで利用できるaddStateChangeListener()のフレームワークバージョンを使用して指定されたタイプのイベントを登録できます。

  public boolean addStateChangeListener(
     BitSet events, EbiStateChangeListener listener)

ここで、eventsはイベントIDのビットセットです。CM APIは、ビットセットを指定するヘルパメソッドを提供します(次のイベントヘルパクラスの使用で説明)。

特定のディレクトリエントリまたは、その下にあるディレクトリかエントリのいずれかで発生するイベントをフィルタすることもできます(再帰的に)。特定のディレクトリエントリの範囲で発生するイベントを登録するには、次のメソッドを使用してリスナを追加します。

  public boolean addStateChangeListener(
     BitSet events, EbiDirectoryEntry entry, int depth, 
         EbiStateChangeListener listener)

メソッドパラメータ

説明

events

イベントIDのビットセット

entry

ディレクトリエントリ(フォルダ、カテゴリ、またはドキュメント)

depth

イベント追跡の深さ

  • 0 は、エントリ自体でのみ状態変更が発生したことを意味します。

  • 1は、エントリおよびそのチャイルドに状態変更が発生したことを意味します。

  • -1は、エントリおよびその子孫に状態変更が発生したことを意味します。

その他の深さでは、エントリ階層のその深さでエントリおよびその子孫に発生した状態変更を追跡するように指定します。

listener

新規リスナオブジェクト

 
Top of section

イベントヘルパクラスの使用

com.sssw.cm.event.util.EboEventHelperクラスは、イベントセットを管理するユーティリティを提供します。このクラスには、次のメソッドが含まれています。

Event helper method

機能

getFullEventIDSet()

すべてのCM要素タイプに発行されたCMイベントのフルセットを含んだビットセットを返します。

getEventIDSet(String elType)

指定のCM要素タイプに発行されたCMイベントのフルセットを含んだビットセットを返します。

getEventIDSet(int stateChangeID)

特定の状態変更タイプにマップするすべてのイベントにビットセットを返します。

adjustEventIDSet()

イベントIDにビットセットを与え、指定された状態変更タイプのCMイベントのビットをオンまたはオフにします。

 
Top of section

イベント登録の例

すべての要素に対して1つのイベントをリッスンする   この例では、すべての要素で「作成」状態変更イベントにリスナを追加します。

  EbiContentMgmtDelegate cmgr =
     com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
  
  BitSet events = EboEventHelper.getEventIDSet(
    com.sssw.fw.event.api.EboStateChangeEvent.SC_CREATE);
  cmgr.addStateChangeListener(events, MyListener);

2つの要素タイプについてすべてのイベントをリッスンする   この例では、ドキュメントタイプおよびフィールドについてのみすべての変更にリスナを追加します。adjustEventIDSet()の使用方法に注目してください。

  EbiContentMgmtDelegate cmgr =
     com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
  
  BitSet events =
     EboEventHelper.getEventIDSet(EbiDocType.EL_DOC_TYPE);
  EboEventHelper.adjustEventIDSet(events, 
     EbiDocField.EL_DOC_FIELD, true);
  cmgr.addStateChangeListener(events, Mylistener);

すべての要素に対して複数のイベントをリッスンする   この例では、新しいビットセットをインスタンス化することでイベントタイプを追加します。この方法は、複数のイベントのセットを指定するのに使用します。

  EbiContentMgmtDelegate cmgr =
     com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
  
  BitSet events = new BitSet();
  events.set(com.sssw.cm.event.api.EbiConstants.
    EVENT_ID_ACCESS_CHECKED);
  events.set(com.sssw.cm.event.api.EbiConstants.
    EVENT_ID_ADMIN_ACCESS_CHECKED);
  events.set(com.sssw.cm.event.api.EbiConstants.
    EVENT_ID_SECUIRTY_RETRIEVED);
  
  cmgr.addStateChangeListener(events, Mylistener);

指定した要素タイプ以外のすべてのイベントをリッスンする   この例では、adjustEventIDSet()でブール引数を使用してイベントセットをオフにする方法を示します。

  EbiContentMgmtDelegate cmgr =
     com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
  
  BitSet events = EboEventHelper.getFullEventIDSet();
  EboEventHelper.adjustEventIDSet(events, EbiDocType.EL_DOC_TYPE, false);
  cmgr.addStateChangeListener(events, Mylistener);

 
Top of page

CMイベントの有効化

Procedure CMイベントを有効または無効にする

  1. config.xml を開いてexteNd Directorプロジェクトをコンテンツ管理します。

  2. 次のプロパティを検索します。

      com.sssw.cm.events.enable.Default
    
  3. 有効にするには値をtrueに、無効にするにはfalseに設定します。

  4. プロジェクトを再展開します。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...