Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/Tables.xlsxbin12386 -> 17229 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html179
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-frame.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-noframe.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/index-all.html45
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/class-use/CDOCommonRepository.IDGenerationLocation.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOChangeSetData.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOCommitInfo.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOID.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOIDGenerator.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/class-use/CDORevisionProvider.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/class-use/ICheckoutSource.html3
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/package-use.html3
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/IRepositoryFactory.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IQueryHandlerProvider.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.CanHandleClientAssignedIDs.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.html6
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.Raw.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreChunkReader.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/CDODBUtil.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStore.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IIDHandler.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IMetaDataManager.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-summary.html14
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-use.html16
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OStore.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/package-summary.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-summary.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/class-use/CDOSessionConfigurationFactory.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.html10
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.pngbin2283 -> 4397 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.html10
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.pngbin2204 -> 3803 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryManager.html3
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html3
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.html22
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.pngbin4245 -> 6079 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-use.html12
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html28
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.pngbin3242 -> 6536 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransaction.Options.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html25
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.pngbin4884 -> 7455 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOMerger.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOPostEventTransactionHandler.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransaction.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler1.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler2.html9
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandlerBase.html13
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-summary.html13
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-use.html13
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/CDOBalancedTree.html6
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/class-use/CommitException.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-summary.html3
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-use.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.pngbin2609 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html (renamed from plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html)26
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.pngbin0 -> 2648 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html13
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.pngbin2625 -> 4240 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.html31
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.pngbin64176 -> 68151 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.Options.DetachmentNotificationEvent.html (renamed from plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.Options.DetachmenNotificationEvent.html)20
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-frame.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-summary.html6
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-use.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html12
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.pngbin2527 -> 4744 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.html7
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.pngbin5429 -> 7135 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspace.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase2.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceConfiguration.html2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/CDOFS.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/package-summary.html11
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-summary.html9
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-use.html5
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/javadoc/overview-summary.html8
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/programmers/server/Architecture.java363
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.emf.cdo.doc.warnings22
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/CDODBUtil.java416
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStore.java142
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.java66
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.java54
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IIDHandler.java190
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMetaDataManager.java224
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.java106
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.java44
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OStore.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryFactory.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryManager.java54
-rw-r--r--plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryProject.java55
-rw-r--r--plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/package-info.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/CDOFS.java388
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/package-info.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/CDOWorkspace.java174
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/package-info.java16
-rw-r--r--plugins/org.eclipse.emf.cdo/.settings/.api_filters444
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.java6
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.java231
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.java100
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.java64
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/util/CDOBalancedTree.java4
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOView.java1613
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java4412
123 files changed, 5151 insertions, 4919 deletions
diff --git a/plugins/org.eclipse.emf.cdo.doc/Tables.xlsx b/plugins/org.eclipse.emf.cdo.doc/Tables.xlsx
index f36c3e7c66..e6cae44bd7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/Tables.xlsx
+++ b/plugins/org.eclipse.emf.cdo.doc/Tables.xlsx
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html b/plugins/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html
index e062869cdd..671249dbdd 100644
--- a/plugins/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html
+++ b/plugins/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html
@@ -29,11 +29,11 @@ function windowTitle()
<p>
<table border="0" cellspacing="0" cellpadding="4">
<tr>
- <td rowspan="4" style="border-right:2px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td colspan="6" style="border-right:2px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:1px solid;background-color:#a8c7ff;font-weight:bold;border-top:2px solid;border-left:none;">Horizontal</td>
+ <td rowspan="4" style="border-right:none;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td colspan="6" style="border-right:2px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:1px solid;background-color:#a8c7ff;font-weight:bold;border-top:2px solid;border-left:2px solid;">Horizontal</td>
</tr>
<tr>
- <td rowspan="3" style="border-right:1px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:2px solid;background-color:#a8c7ff;font-weight:bold;border-top:none;border-left:none;">NonAudit</td>
+ <td rowspan="3" style="border-right:1px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:2px solid;background-color:#a8c7ff;font-weight:bold;border-top:none;border-left:2px solid;">NonAudit</td>
<td colspan="2" style="border-right:1px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:1px solid;background-color:#a8c7ff;font-weight:bold;border-top:none;border-left:none;">Audit</td>
<td colspan="3" style="border-right:2px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:1px solid;background-color:#a8c7ff;font-weight:bold;border-top:none;border-left:none;">Branching</td>
</tr>
@@ -48,130 +48,139 @@ function windowTitle()
<td style="border-right:2px solid;vertical-align:middle;text-align:center;font:12px Arial;border-bottom:2px solid;background-color:#a8c7ff;font-weight:bold;border-top:none;border-left:none;">CopyOnBranch</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:2px solid;border-left:2px solid;">Supports Audit revisions</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">Supports Branching </td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:2px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">Supports Revision Deltas</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">X</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:left;font:12px Arial;border-bottom:none;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:middle;text-align:left;font:12px Arial;border-bottom:2px solid;background-color:#a8c7ff;font-weight:bold;border-top:2px solid;border-left:2px solid;">Performance considerations:</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:none;vertical-align:top;text-align:center;font:12px Arial;border-bottom:none;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- list insert (middle)</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:2px solid;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:2px solid;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:2px solid;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:2px solid;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:2px solid;border-left:none;">-</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:2px solid;border-left:none;">-</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- list append/insert (end)</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- list delete (middle)</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- list delete (end)</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- list clear</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- list move</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">0</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ </tr>
+ <tr>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- create first revision in branch</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- first list modification in branch </td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:1px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- subsequent list modification in branch </td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:1px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
</tr>
<tr>
- <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:2px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:left;font:12px Arial;border-bottom:2px solid;background-color:#e0ebff;border-top:none;border-left:2px solid;">- read access in branch</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
<td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
- <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">&nbsp;</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
+ <td style="border-right:1px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">-</td>
+ <td style="border-right:2px solid;vertical-align:top;text-align:center;font:12px Arial;border-bottom:2px solid;font-weight:bold;border-top:none;border-left:none;">+</td>
</tr>
</table>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-frame.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-frame.html
index 93fd33c880..cf5f89b3e7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-frame.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-frame.html
@@ -648,7 +648,7 @@ All Classes (CDO Model Repository Documentation)
<BR>
<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.ChangeSubscriptionPoliciesEvent</I></A>
<BR>
-<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.DetachmenNotificationEvent</I></A>
+<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.DetachmentNotificationEvent</I></A>
<BR>
<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.FeatureAnalyzerEvent</I></A>
<BR>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-noframe.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-noframe.html
index a321183be1..c49d8106d5 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-noframe.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/allclasses-noframe.html
@@ -648,7 +648,7 @@ All Classes (CDO Model Repository Documentation)
<BR>
<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view"><I>CDOView.Options.ChangeSubscriptionPoliciesEvent</I></A>
<BR>
-<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><I>CDOView.Options.DetachmenNotificationEvent</I></A>
+<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><I>CDOView.Options.DetachmentNotificationEvent</I></A>
<BR>
<A HREF="org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view"><I>CDOView.Options.FeatureAnalyzerEvent</I></A>
<BR>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/index-all.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/index-all.html
index acede6ab1d..87eca110ae 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/index-all.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/index-all.html
@@ -790,7 +790,8 @@ Constructor for class org.eclipse.emf.cdo.transaction.<A HREF="./org/eclipse/emf
<A HREF="./org/eclipse/emf/cdo/eresource/CDOResource.html" title="interface in org.eclipse.emf.cdo.eresource"><CODE>resource</CODE></A> that contains the referencing <A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>object</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOAutoAttacher.html#CDOAutoAttacher(org.eclipse.emf.cdo.transaction.CDOTransaction)"><B>CDOAutoAttacher(CDOTransaction)</B></A> -
Constructor for class org.eclipse.emf.cdo.transaction.<A HREF="./org/eclipse/emf/cdo/transaction/CDOAutoAttacher.html" title="class in org.eclipse.emf.cdo.transaction">CDOAutoAttacher</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/util/CDOBalancedTree.html" title="class in org.eclipse.emf.cdo.util"><B>CDOBalancedTree</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/util/package-summary.html">org.eclipse.emf.cdo.util</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/util/CDOBalancedTree.html#CDOBalancedTree(org.eclipse.emf.cdo.eresource.CDOResourceFolder, int, int)"><B>CDOBalancedTree(CDOResourceFolder, int, int)</B></A> -
+<DT><A HREF="./org/eclipse/emf/cdo/util/CDOBalancedTree.html" title="class in org.eclipse.emf.cdo.util"><B>CDOBalancedTree</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/util/package-summary.html">org.eclipse.emf.cdo.util</A><DD>A utility class that attaches <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>objects</CODE></A> to a <A HREF="./org/eclipse/emf/cdo/eresource/CDOResourceFolder.html" title="interface in org.eclipse.emf.cdo.eresource"><CODE>folder</CODE></A> rooted, balanced tree such that configurable
+ capacities for resources per folder and objects per resource are never exceeded.<DT><A HREF="./org/eclipse/emf/cdo/util/CDOBalancedTree.html#CDOBalancedTree(org.eclipse.emf.cdo.eresource.CDOResourceFolder, int, int)"><B>CDOBalancedTree(CDOResourceFolder, int, int)</B></A> -
Constructor for class org.eclipse.emf.cdo.util.<A HREF="./org/eclipse/emf/cdo/util/CDOBalancedTree.html" title="class in org.eclipse.emf.cdo.util">CDOBalancedTree</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/util/CDOBalancedTree.html#CDOBalancedTree(org.eclipse.emf.cdo.eresource.CDOResourceFolder, int)"><B>CDOBalancedTree(CDOResourceFolder, int)</B></A> -
@@ -865,7 +866,7 @@ Method in interface org.eclipse.emf.cdo.<A HREF="./org/eclipse/emf/cdo/CDOObject
Method in class org.eclipse.emf.internal.cdo.<A HREF="./org/eclipse/emf/internal/cdo/CDOObjectImpl.html" title="class in org.eclipse.emf.internal.cdo">CDOObjectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOConflictResolver.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOConflictResolver</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A strategy used to customize the default conflict resolution behaviour of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transactions</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOConflictResolver2.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOConflictResolver2</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A strategy used to customize the default conflict resolution behaviour of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transactions</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/delta/CDOContainerFeatureDelta.html" title="interface in org.eclipse.emf.cdo.common.revision.delta"><B>CDOContainerFeatureDelta</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/revision/delta/package-summary.html">org.eclipse.emf.cdo.common.revision.delta</A><DD>A <A HREF="./org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.html" title="interface in org.eclipse.emf.cdo.common.revision.delta"><CODE>feature delta</CODE></A> that represents a modification of the <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eContainer()" title="class or interface in org.eclipse.emf.ecore"><CODE>eContainer</CODE></A>
- feature.<DT><A HREF="./org/eclipse/emf/cdo/common/protocol/CDODataInput.html" title="interface in org.eclipse.emf.cdo.common.protocol"><B>CDODataInput</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/protocol/package-summary.html">org.eclipse.emf.cdo.common.protocol</A><DD>Provides I/O methods for reading various CDO data types and concepts from streams.<DT><A HREF="./org/eclipse/emf/cdo/common/protocol/CDODataOutput.html" title="interface in org.eclipse.emf.cdo.common.protocol"><B>CDODataOutput</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/protocol/package-summary.html">org.eclipse.emf.cdo.common.protocol</A><DD>Provides I/O methods for writing various CDO data types and concepts to streams.<DT><A HREF="./org/eclipse/emf/cdo/server/db/CDODBUtil.html" title="class in org.eclipse.emf.cdo.server.db"><B>CDODBUtil</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDODefaultTransactionHandler</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>An empty default implementation of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler1</CODE></A> and <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler2</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler.html#CDODefaultTransactionHandler()"><B>CDODefaultTransactionHandler()</B></A> -
+ feature.<DT><A HREF="./org/eclipse/emf/cdo/common/protocol/CDODataInput.html" title="interface in org.eclipse.emf.cdo.common.protocol"><B>CDODataInput</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/protocol/package-summary.html">org.eclipse.emf.cdo.common.protocol</A><DD>Provides I/O methods for reading various CDO data types and concepts from streams.<DT><A HREF="./org/eclipse/emf/cdo/common/protocol/CDODataOutput.html" title="interface in org.eclipse.emf.cdo.common.protocol"><B>CDODataOutput</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/protocol/package-summary.html">org.eclipse.emf.cdo.common.protocol</A><DD>Provides I/O methods for writing various CDO data types and concepts to streams.<DT><A HREF="./org/eclipse/emf/cdo/server/db/CDODBUtil.html" title="class in org.eclipse.emf.cdo.server.db"><B>CDODBUtil</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>Various static methods that may help in setting up and dealing with <A HREF="./org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db"><CODE>DB stores</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDODefaultTransactionHandler</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>An empty default implementation of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler1</CODE></A> and <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler2</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler.html#CDODefaultTransactionHandler()"><B>CDODefaultTransactionHandler()</B></A> -
Constructor for class org.eclipse.emf.cdo.transaction.<A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDODefaultTransactionHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler1.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDODefaultTransactionHandler1</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>An empty default implementation of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler1</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDODefaultTransactionHandler1.html#CDODefaultTransactionHandler1()"><B>CDODefaultTransactionHandler1()</B></A> -
@@ -930,7 +931,8 @@ Constructor for class org.eclipse.emf.cdo.eresource.impl.<A HREF="./org/eclipse/
<DT><A HREF="./org/eclipse/emf/cdo/eresource/provider/CDOFileResourceItemProvider.html" title="class in org.eclipse.emf.cdo.eresource.provider"><B>CDOFileResourceItemProvider</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/eresource/provider/package-summary.html">org.eclipse.emf.cdo.eresource.provider</A><DD>This is the item provider adapter for a <A HREF="./org/eclipse/emf/cdo/eresource/CDOFileResource.html" title="interface in org.eclipse.emf.cdo.eresource"><CODE>CDOFileResource</CODE></A> object. <!<DT><A HREF="./org/eclipse/emf/cdo/eresource/provider/CDOFileResourceItemProvider.html#CDOFileResourceItemProvider(org.eclipse.emf.common.notify.AdapterFactory)"><B>CDOFileResourceItemProvider(AdapterFactory)</B></A> -
Constructor for class org.eclipse.emf.cdo.eresource.provider.<A HREF="./org/eclipse/emf/cdo/eresource/provider/CDOFileResourceItemProvider.html" title="class in org.eclipse.emf.cdo.eresource.provider">CDOFileResourceItemProvider</A>
<DD>This constructs an instance from a factory and a notifier. <!
-<DT><A HREF="./org/eclipse/emf/cdo/workspace/efs/CDOFS.html" title="class in org.eclipse.emf.cdo.workspace.efs"><B>CDOFS</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/workspace/efs/package-summary.html">org.eclipse.emf.cdo.workspace.efs</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/CDOHibernateUtil.html" title="class in org.eclipse.emf.cdo.server.hibernate"><B>CDOHibernateUtil</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/CDOObject.html#cdoID()"><B>cdoID()</B></A> -
+<DT><A HREF="./org/eclipse/emf/cdo/workspace/efs/CDOFS.html" title="class in org.eclipse.emf.cdo.workspace.efs"><B>CDOFS</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/workspace/efs/package-summary.html">org.eclipse.emf.cdo.workspace.efs</A><DD>This class is the main entry point to the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/CDOHibernateUtil.html" title="class in org.eclipse.emf.cdo.server.hibernate"><B>CDOHibernateUtil</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/CDOObject.html#cdoID()"><B>cdoID()</B></A> -
Method in interface org.eclipse.emf.cdo.<A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo">CDOObject</A>
<DD>Returns the <em>technical</em> object identifier of this object, or <code>null</code> if the <A HREF="./org/eclipse/emf/cdo/CDOObject.html#cdoState()"><CODE>state</CODE></A> of this object is <A HREF="./org/eclipse/emf/cdo/CDOState.html#TRANSIENT"><CODE>TRANSIENT</CODE></A> or <A HREF="./org/eclipse/emf/cdo/CDOState.html#INVALID"><CODE>INVALID</CODE></A>.
<DT><A HREF="./org/eclipse/emf/cdo/common/id/CDOID.html" title="interface in org.eclipse.emf.cdo.common.id"><B>CDOID</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/id/package-summary.html">org.eclipse.emf.cdo.common.id</A><DD>Identifies CDO objects uniquely in a CDO <A HREF="./org/eclipse/emf/cdo/common/CDOCommonRepository.html" title="interface in org.eclipse.emf.cdo.common"><CODE>repository</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/id/CDOWithID.html#cdoID()"><B>cdoID()</B></A> -
@@ -1156,10 +1158,11 @@ Constructor for class org.eclipse.emf.cdo.common.model.<A HREF="./org/eclipse/em
a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.Descriptor.html#getSource()"><CODE>source </CODE></A> package registry.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.Descriptor.html#CDOPackageRegistryPopulator.Descriptor(org.eclipse.emf.ecore.EPackage.Registry, java.lang.String)"><B>CDOPackageRegistryPopulator.Descriptor(EPackage.Registry, String)</B></A> -
Constructor for class org.eclipse.emf.cdo.common.model.<A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.Descriptor.html" title="class in org.eclipse.emf.cdo.common.model">CDOPackageRegistryPopulator.Descriptor</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageTypeRegistry.html" title="class in org.eclipse.emf.cdo.common.model"><B>CDOPackageTypeRegistry</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>A <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageTypeRegistry.html#INSTANCE"><CODE>singleton</CODE></A> registry for the <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.Type.html" title="enum in org.eclipse.emf.cdo.common.model"><CODE>package unit types</CODE></A> of EMF <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EPackage.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>packages</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageTypeRegistry.CDOObjectMarker.html" title="interface in org.eclipse.emf.cdo.common.model"><B>CDOPackageTypeRegistry.CDOObjectMarker</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>A common marker interface for CDO (native) objects.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><B>CDOPackageUnit</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Represents a tree structure of nested <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EPackage.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>packages</CODE></A> that are registered with a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageRegistry.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>package registry</CODE></A> and that can only be serialized as a whole.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.State.html" title="enum in org.eclipse.emf.cdo.common.model"><B>CDOPackageUnit.State</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Describes the possible states a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>package unit</CODE></A> may be in during its lifecycle.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.Type.html" title="enum in org.eclipse.emf.cdo.common.model"><B>CDOPackageUnit.Type</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Describes the instances of <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EClass.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>classes</CODE></A> of a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>package unit</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/security/CDOPermission.html" title="enum in org.eclipse.emf.cdo.common.security"><B>CDOPermission</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html">org.eclipse.emf.cdo.common.security</A><DD>Describes the possible protection levels a protectable object may have.<DT><A HREF="./org/eclipse/emf/cdo/common/security/CDOPermissionProvider.html" title="interface in org.eclipse.emf.cdo.common.security"><B>CDOPermissionProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html">org.eclipse.emf.cdo.common.security</A><DD>Provides the protection level of protectable objects.<DT><A HREF="./org/eclipse/emf/cdo/common/security/CDOPermissionProvider.Constant.html" title="class in org.eclipse.emf.cdo.common.security"><B>CDOPermissionProvider.Constant</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html">org.eclipse.emf.cdo.common.security</A><DD>Provides a constant protection level for all protectable entities.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDOPostEventTransactionHandler</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html#CDOPostEventTransactionHandler()"><B>CDOPostEventTransactionHandler()</B></A> -
+<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageTypeRegistry.html" title="class in org.eclipse.emf.cdo.common.model"><B>CDOPackageTypeRegistry</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>A <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageTypeRegistry.html#INSTANCE"><CODE>singleton</CODE></A> registry for the <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.Type.html" title="enum in org.eclipse.emf.cdo.common.model"><CODE>package unit types</CODE></A> of EMF <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EPackage.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>packages</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageTypeRegistry.CDOObjectMarker.html" title="interface in org.eclipse.emf.cdo.common.model"><B>CDOPackageTypeRegistry.CDOObjectMarker</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>A common marker interface for CDO (native) objects.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><B>CDOPackageUnit</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Represents a tree structure of nested <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EPackage.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>packages</CODE></A> that are registered with a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageRegistry.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>package registry</CODE></A> and that can only be serialized as a whole.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.State.html" title="enum in org.eclipse.emf.cdo.common.model"><B>CDOPackageUnit.State</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Describes the possible states a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>package unit</CODE></A> may be in during its lifecycle.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.Type.html" title="enum in org.eclipse.emf.cdo.common.model"><B>CDOPackageUnit.Type</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Describes the instances of <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EClass.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>classes</CODE></A> of a <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>package unit</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/security/CDOPermission.html" title="enum in org.eclipse.emf.cdo.common.security"><B>CDOPermission</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html">org.eclipse.emf.cdo.common.security</A><DD>Describes the possible protection levels a protectable object may have.<DT><A HREF="./org/eclipse/emf/cdo/common/security/CDOPermissionProvider.html" title="interface in org.eclipse.emf.cdo.common.security"><B>CDOPermissionProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html">org.eclipse.emf.cdo.common.security</A><DD>Provides the protection level of protectable objects.<DT><A HREF="./org/eclipse/emf/cdo/common/security/CDOPermissionProvider.Constant.html" title="class in org.eclipse.emf.cdo.common.security"><B>CDOPermissionProvider.Constant</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html">org.eclipse.emf.cdo.common.security</A><DD>Provides a constant protection level for all protectable entities.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDOPostEventTransactionHandler</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>An abstract call-back class that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html#CDOPostEventTransactionHandler()"><B>CDOPostEventTransactionHandler()</B></A> -
Constructor for class org.eclipse.emf.cdo.transaction.<A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDOPostEventTransactionHandler.Default</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html#CDOPostEventTransactionHandler.Default()"><B>CDOPostEventTransactionHandler.Default()</B></A> -
+<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction"><B>CDOPostEventTransactionHandler.Default</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>An empty default implementation of <A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html#CDOPostEventTransactionHandler.Default()"><B>CDOPostEventTransactionHandler.Default()</B></A> -
Constructor for class org.eclipse.emf.cdo.transaction.<A HREF="./org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/CDOObject.html#cdoPrefetch(int)"><B>cdoPrefetch(int)</B></A> -
@@ -1409,10 +1412,10 @@ Variable in class org.eclipse.emf.cdo.eresource.provider.<A HREF="./org/eclipse/
<A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.Options.html#addConflictResolver(org.eclipse.emf.cdo.transaction.CDOConflictResolver)"><CODE>conflict resolvers</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionConflictEvent.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionConflictEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired from a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transaction</CODE></A> for each
<A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionConflictEvent.html#getConflictingObject()"><CODE>object</CODE></A> that enters the <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html#hasConflict()"><CODE>conflict</CODE></A> state.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionContainer.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionContainer</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>Can open new <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transactions</CODE></A> and provide access to openend transactions.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionFinishedEvent.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionFinishedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired from a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transaction</CODE></A> when it becomes
<A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html#isDirty()"><CODE>clean</CODE></A> after a sucessful <A HREF="./org/eclipse/emf/cdo/transaction/CDOUserTransaction.html#commit()"><CODE>commit</CODE></A> or
- <A HREF="./org/eclipse/emf/cdo/transaction/CDOUserTransaction.html#rollback()"><CODE>rollback</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionFinishedEvent.Type.html" title="enum in org.eclipse.emf.cdo.transaction"><B>CDOTransactionFinishedEvent.Type</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>Enumerates the possible <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionFinishedEvent.html#getType()"><CODE>causes</CODE></A> for a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transaction</CODE></A> to become finished.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A combination of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler1</CODE></A> and <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler2</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler1</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A call-back interface that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when <A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
- attached, modified or detached.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler2</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A call-back interface that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler3</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A call-back interface that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandlerBase.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandlerBase</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A marker interface for use with <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html#addTransactionHandler(org.eclipse.emf.cdo.transaction.CDOTransactionHandlerBase)"><CODE>CDOTransaction.addTransactionHandler()</CODE></A> and
+ <A HREF="./org/eclipse/emf/cdo/transaction/CDOUserTransaction.html#rollback()"><CODE>rollback</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionFinishedEvent.Type.html" title="enum in org.eclipse.emf.cdo.transaction"><B>CDOTransactionFinishedEvent.Type</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>Enumerates the possible <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionFinishedEvent.html#getType()"><CODE>causes</CODE></A> for a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transaction</CODE></A> to become finished.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A combination of <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler1</CODE></A> and <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler2</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler1</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A call-back interface that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before <A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
+ attached, modified or detached.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler2</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A call-back interface that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed or rolled back.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler3</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A call-back interface that is called by a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed (with result info) or rolled back.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionHandlerBase.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandlerBase</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A marker interface for use with <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html#addTransactionHandler(org.eclipse.emf.cdo.transaction.CDOTransactionHandlerBase)"><CODE>CDOTransaction.addTransactionHandler()</CODE></A> and
<A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html#removeTransactionHandler(org.eclipse.emf.cdo.transaction.CDOTransactionHandlerBase)"><CODE>CDOTransaction.removeTransactionHandler()</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/transaction/CDOTransactionStartedEvent.html" title="interface in org.eclipse.emf.cdo.transaction"><B>CDOTransactionStartedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html">org.eclipse.emf.cdo.transaction</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired from a <A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transaction</CODE></A> when it first becomes
<A HREF="./org/eclipse/emf/cdo/transaction/CDOTransaction.html#isDirty()"><CODE>dirty</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/model/CDOType.html" title="interface in org.eclipse.emf.cdo.common.model"><B>CDOType</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html">org.eclipse.emf.cdo.common.model</A><DD>Provides access to all CDO-supported data types.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/delta/CDOUnsetFeatureDelta.html" title="interface in org.eclipse.emf.cdo.common.revision.delta"><B>CDOUnsetFeatureDelta</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/revision/delta/package-summary.html">org.eclipse.emf.cdo.common.revision.delta</A><DD>A <A HREF="./org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.html" title="interface in org.eclipse.emf.cdo.common.revision.delta"><CODE>feature delta</CODE></A> that represents the <em>unsetting</em> of the value of a
<A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EStructuralFeature.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>feature</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/util/CDOUpdatable.html" title="interface in org.eclipse.emf.cdo.util"><B>CDOUpdatable</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/util/package-summary.html">org.eclipse.emf.cdo.util</A><DD>Represents facilities that can receive
@@ -1435,8 +1438,10 @@ Method in class org.eclipse.emf.internal.cdo.<A HREF="./org/eclipse/emf/internal
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>Encapsulates a set of notifying <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> configuration options.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.CacheReferenceTypeEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
<A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setCacheReferenceType(org.eclipse.net4j.util.ref.ReferenceType)"><CODE>cache reference type</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.ChangeSubscriptionPoliciesEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
- <A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#addChangeSubscriptionPolicy(org.eclipse.emf.cdo.view.CDOAdapterPolicy)"><CODE>change subscription policies</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.DetachmenNotificationEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
- <A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setDetachmentNotificationEnabled(boolean)"><CODE>detachment notification enabled</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.FeatureAnalyzerEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.InvalidationNotificationEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
+ <A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#addChangeSubscriptionPolicy(org.eclipse.emf.cdo.view.CDOAdapterPolicy)"><CODE>change subscription policies</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.DetachmentNotificationEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
+ <A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setDetachmentNotificationEnabled(boolean)"><CODE>detachment notification enabled</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.FeatureAnalyzerEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
+ <A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setFeatureAnalyzer(org.eclipse.emf.cdo.view.CDOFeatureAnalyzer)"><CODE>feature analyzer</CODE></A> option has
+ changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.InvalidationNotificationEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
<A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setInvalidationNotificationEnabled(boolean)"><CODE>invalidation notification enabled</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.InvalidationPolicyEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.InvalidationPolicyEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
<A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setInvalidationPolicy(org.eclipse.emf.cdo.view.CDOInvalidationPolicy)"><CODE>invalidation policy</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.LoadNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.LoadNotificationEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
<A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setLoadNotificationEnabled(boolean)"><CODE>load notification enabled</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.ReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.ReferencePolicyEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.StrongReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>CDOView.Options.StrongReferencePolicyEvent</CODE></A> instead.</I><DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOView.Options.RevisionPrefetchingPolicyEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
@@ -1446,7 +1451,7 @@ Method in class org.eclipse.emf.internal.cdo.<A HREF="./org/eclipse/emf/internal
<A HREF="./org/eclipse/emf/cdo/view/CDOView.Options.html#setStrongReferencePolicy(org.eclipse.emf.cdo.view.CDOAdapterPolicy)"><CODE>strong reference policy</CODE></A> option has changed.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewAdaptersNotifiedEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewAdaptersNotifiedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired when a <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> has finished notifying EMF <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/common/notify/Adapter.html?is-external=true" title="class or interface in org.eclipse.emf.common.notify"><CODE>adapters</CODE></A> about remote changes.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewContainer.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewContainer</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>Can open new <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>views</CODE></A> and provide access to openend views.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewDurabilityChangedEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewDurabilityChangedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired when a <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> has been made
<A HREF="./org/eclipse/emf/cdo/view/CDOView.html#enableDurableLocking(boolean)"><CODE>durable</CODE></A> or volatile.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A generic <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/IEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired from a <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewInvalidationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewInvalidationEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired when passive updates (commit notifications) are being received from a remote
repository.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewLocksChangedEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewLocksChangedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired when <A HREF="./org/eclipse/emf/cdo/common/lock/CDOLockChangeInfo.html" title="interface in org.eclipse.emf.cdo.common.lock"><CODE>lock changes</CODE></A> are being received from a remote
- repository.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewProvider.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>Capable of opening a <code>CDOView</code> on a target repository, defined by a URI.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewProviderRegistry.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewProviderRegistry</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A global registry of <A HREF="./org/eclipse/emf/cdo/view/CDOViewProvider.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view provider</CODE></A> implementations.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewSet.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewSet</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/resource/ResourceSet.html?is-external=true" title="class or interface in org.eclipse.emf.ecore.resource"><CODE>ResourceSet</CODE></A> adapter to associate a set of <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>CDOView</CODE></A> instances.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewTargetChangedEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewTargetChangedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired when the branch point of a <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> has changed.<DT><A HREF="./org/eclipse/emf/cdo/common/id/CDOWithID.html" title="interface in org.eclipse.emf.cdo.common.id"><B>CDOWithID</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/id/package-summary.html">org.eclipse.emf.cdo.common.id</A><DD>An identifiable object.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspace</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Represents a local <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceConfiguration.html#checkout()"><CODE>checkout</CODE></A> from a remote repository.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspace.DirtyStateChangedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceBase.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspaceBase</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Represents the local state of a <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> directly after the initial
+ repository.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewProvider.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>Capable of opening a <code>CDOView</code> on a target repository, defined by a URI.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewProviderRegistry.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewProviderRegistry</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A global registry of <A HREF="./org/eclipse/emf/cdo/view/CDOViewProvider.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view provider</CODE></A> implementations.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewSet.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewSet</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/resource/ResourceSet.html?is-external=true" title="class or interface in org.eclipse.emf.ecore.resource"><CODE>ResourceSet</CODE></A> adapter to associate a set of <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>CDOView</CODE></A> instances.<DT><A HREF="./org/eclipse/emf/cdo/view/CDOViewTargetChangedEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>CDOViewTargetChangedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/view/package-summary.html">org.eclipse.emf.cdo.view</A><DD>A <A HREF="./org/eclipse/emf/cdo/view/CDOViewEvent.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view event</CODE></A> fired when the branch point of a <A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> has changed.<DT><A HREF="./org/eclipse/emf/cdo/common/id/CDOWithID.html" title="interface in org.eclipse.emf.cdo.common.id"><B>CDOWithID</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/id/package-summary.html">org.eclipse.emf.cdo.common.id</A><DD>An identifiable object.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspace</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Represents a local <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceConfiguration.html#checkout()"><CODE>checkout</CODE></A> from a remote repository.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspace.DirtyStateChangedEvent</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>An <A HREF="../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/IEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired when the overall state of the <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> changes between <i>dirty</i> and <i>clean</i>.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceBase.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspaceBase</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Represents the local state of a <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> directly after the initial
<A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceConfiguration.html#checkout()"><CODE>checkout</CODE></A> operation or any subsequent
<A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html#update(org.eclipse.emf.cdo.transaction.CDOMerger)"><CODE>update</CODE></A> and
<A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html#replace(java.lang.String, long)"><CODE>replace</CODE></A> operations.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceBase2.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspaceBase2</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Adds <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceBase2.html#isEmpty()"><CODE>CDOWorkspaceBase2.isEmpty()</CODE></A> and <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceBase2.html#containsID(org.eclipse.emf.cdo.common.id.CDOID)"><CODE>CDOWorkspaceBase2.containsID(CDOID)</CODE></A> methods.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceConfiguration.html" title="interface in org.eclipse.emf.cdo.workspace"><B>CDOWorkspaceConfiguration</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Checks out new <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> or opens existing ones.<DT><A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspaceUtil.html" title="class in org.eclipse.emf.cdo.workspace"><B>CDOWorkspaceUtil</B></A> - Class in <A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A><DD>Various static helper methods for dealing with <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/CDOObject.html#cdoWriteLock()"><B>cdoWriteLock()</B></A> -
@@ -6903,7 +6908,7 @@ Method in class org.eclipse.emf.cdo.server.<A HREF="./org/eclipse/emf/cdo/server
<DT><A HREF="./org/eclipse/emf/cdo/location/ICheckoutSource.html" title="interface in org.eclipse.emf.cdo.location"><B>ICheckoutSource</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/location/package-summary.html">org.eclipse.emf.cdo.location</A><DD>A CDO server independent representation of a <A HREF="./org/eclipse/emf/cdo/common/branch/CDOBranchPoint.html" title="interface in org.eclipse.emf.cdo.common.branch"><CODE>branch point</CODE></A> in a repository.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IClassMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IClassMapping</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Basic interface for class mappings.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IClassMappingAuditSupport.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IClassMappingAuditSupport</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Interface which complements <A HREF="./org/eclipse/emf/cdo/server/db/mapping/IClassMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><CODE>IClassMapping</CODE></A> with methods to facilitate audit support.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IClassMappingDeltaSupport.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IClassMappingDeltaSupport</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Interface which complements <A HREF="./org/eclipse/emf/cdo/server/db/mapping/IClassMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><CODE>IClassMapping</CODE></A> with methods to facilitate revision delta support.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.Props.html#ID_GENERATION_LOCATION"><B>ID_GENERATION_LOCATION</B></A> -
Static variable in interface org.eclipse.emf.cdo.server.<A HREF="./org/eclipse/emf/cdo/server/IRepository.Props.html" title="interface in org.eclipse.emf.cdo.server">IRepository.Props</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html" title="interface in org.eclipse.emf.cdo.server.db4o"><B>IDB4OIdentifiableObject</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db4o/package-summary.html">org.eclipse.emf.cdo.server.db4o</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db4o/IDB4OStore.html" title="interface in org.eclipse.emf.cdo.server.db4o"><B>IDB4OStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db4o/package-summary.html">org.eclipse.emf.cdo.server.db4o</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStore.Props.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStore.Props</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStoreChunkReader</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.html" title="interface in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Manages all persistent aspects of durable CDO views such as <A HREF="./org/eclipse/emf/cdo/common/branch/CDOBranchPoint.html" title="interface in org.eclipse.emf.cdo.common.branch"><CODE>branch point</CODE></A> and acquired locks.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockArea.html" title="interface in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager.LockArea</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Encapsulates the persistable information about a single durable CDO view like <A HREF="./org/eclipse/emf/cdo/common/branch/CDOBranchPoint.html" title="interface in org.eclipse.emf.cdo.common.branch"><CODE>branch point</CODE></A>
+<DT><A HREF="./org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html" title="interface in org.eclipse.emf.cdo.server.db4o"><B>IDB4OIdentifiableObject</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db4o/package-summary.html">org.eclipse.emf.cdo.server.db4o</A><DD>Represents DB4O objects with an <A HREF="./org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html#getId()"><CODE>ID</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db4o/IDB4OStore.html" title="interface in org.eclipse.emf.cdo.server.db4o"><B>IDB4OStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db4o/package-summary.html">org.eclipse.emf.cdo.server.db4o</A><DD>The main entry point to the API of CDO's integration with DB4O databases.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>The main entry point to the API of CDO's proprietary object/relational mapper.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStore.Props.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStore.Props</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>A <A HREF="./org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IDBStoreChunkReader</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>A <A HREF="./org/eclipse/emf/cdo/server/IStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server"><CODE>chunk reader</CODE></A> for CDO's proprietary object/relational mapper.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.html" title="interface in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Manages all persistent aspects of durable CDO views such as <A HREF="./org/eclipse/emf/cdo/common/branch/CDOBranchPoint.html" title="interface in org.eclipse.emf.cdo.common.branch"><CODE>branch point</CODE></A> and acquired locks.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockArea.html" title="interface in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager.LockArea</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Encapsulates the persistable information about a single durable CDO view like <A HREF="./org/eclipse/emf/cdo/common/branch/CDOBranchPoint.html" title="interface in org.eclipse.emf.cdo.common.branch"><CODE>branch point</CODE></A>
and acquired locks.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockArea.Handler.html" title="interface in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager.LockArea.Handler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>A call-back interface for <em>handling</em> <A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockArea.html" title="interface in org.eclipse.emf.cdo.common.lock"><CODE>lock area</CODE></A> objects.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockAreaAlreadyExistsException.html" title="class in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager.LockAreaAlreadyExistsException</B></A> - Exception in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Exception occurs when attempting to create a durable <A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockArea.html" title="interface in org.eclipse.emf.cdo.common.lock"><CODE>IDurableLockingManager.LockArea</CODE></A> that already exists.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockAreaAlreadyExistsException.html#IDurableLockingManager.LockAreaAlreadyExistsException(java.lang.String)"><B>IDurableLockingManager.LockAreaAlreadyExistsException(String)</B></A> -
Constructor for exception org.eclipse.emf.cdo.common.lock.<A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockAreaAlreadyExistsException.html" title="class in org.eclipse.emf.cdo.common.lock">IDurableLockingManager.LockAreaAlreadyExistsException</A>
<DD>&nbsp;
@@ -6913,10 +6918,10 @@ Constructor for exception org.eclipse.emf.cdo.common.lock.<A HREF="./org/eclipse
<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockAreaNotFoundException.html#IDurableLockingManager.LockAreaNotFoundException(java.lang.String, java.lang.Throwable, java.lang.String)"><B>IDurableLockingManager.LockAreaNotFoundException(String, Throwable, String)</B></A> -
Constructor for exception org.eclipse.emf.cdo.common.lock.<A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockAreaNotFoundException.html" title="class in org.eclipse.emf.cdo.common.lock">IDurableLockingManager.LockAreaNotFoundException</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockGrade.html" title="enum in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager.LockGrade</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Enumerates the possible combinations of read and write locks on a single CDO object.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateMappingProvider.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateMappingProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>A mappingprovider adds a hibernate mapping to a hibernate configuration object.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateMappingProvider.Factory.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateMappingProvider.Factory</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateStore.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateStoreChunkReader</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IIDHandler.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IIDHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IListMapping</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Interface for mapping features with <code>isMany() == true</code>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping2.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IListMapping2</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Extension interface to <A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><CODE>IListMapping</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMappingDeltaSupport.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IListMappingDeltaSupport</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Interface to complement <A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><CODE>IListMapping</CODE></A> in order to provide list delta processing support.<DT><A HREF="./org/eclipse/emf/cdo/server/ILockingManager.html" title="interface in org.eclipse.emf.cdo.server"><B>ILockingManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Manages all persistent aspects of durable CDO views and provides for vetoable
+<DT><A HREF="./org/eclipse/emf/cdo/common/lock/IDurableLockingManager.LockGrade.html" title="enum in org.eclipse.emf.cdo.common.lock"><B>IDurableLockingManager.LockGrade</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html">org.eclipse.emf.cdo.common.lock</A><DD>Enumerates the possible combinations of read and write locks on a single CDO object.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateMappingProvider.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateMappingProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>A mappingprovider adds a hibernate mapping to a hibernate configuration object.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateMappingProvider.Factory.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateMappingProvider.Factory</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateStore.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/IHibernateStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.hibernate"><B>IHibernateStoreChunkReader</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html">org.eclipse.emf.cdo.server.hibernate</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IIDHandler.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IIDHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>Abstracts the handling of <A HREF="./org/eclipse/emf/cdo/common/id/CDOID.html" title="interface in org.eclipse.emf.cdo.common.id"><CODE>IDs</CODE></A> of different <A HREF="./org/eclipse/emf/cdo/common/id/CDOID.ObjectType.html" title="enum in org.eclipse.emf.cdo.common.id"><CODE>ID types</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IListMapping</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Interface for mapping features with <code>isMany() == true</code>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping2.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IListMapping2</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Extension interface to <A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><CODE>IListMapping</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMappingDeltaSupport.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IListMappingDeltaSupport</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>Interface to complement <A HREF="./org/eclipse/emf/cdo/server/db/mapping/IListMapping.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><CODE>IListMapping</CODE></A> in order to provide list delta processing support.<DT><A HREF="./org/eclipse/emf/cdo/server/ILockingManager.html" title="interface in org.eclipse.emf.cdo.server"><B>ILockingManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Manages all persistent aspects of durable CDO views and provides for vetoable
<A HREF="./org/eclipse/emf/cdo/server/ILockingManager.html#addDurableViewHandler(org.eclipse.emf.cdo.server.ILockingManager.DurableViewHandler)"><CODE>interception</CODE></A> of the durable view resumption
process.<DT><A HREF="./org/eclipse/emf/cdo/server/ILockingManager.DurableViewHandler.html" title="interface in org.eclipse.emf.cdo.server"><B>ILockingManager.DurableViewHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>A call-back interface primarily intended to allow implementers to prevent the view from being opened by throwing an
- exception.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IMappingStrategy.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IMappingStrategy</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>The mapping strategy acts as a connection between the DBStore and the database management (and OR-mapping) classes.<DT><A HREF="./org/eclipse/emf/cdo/server/IMEMStore.html" title="interface in org.eclipse.emf.cdo.server"><B>IMEMStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/eclipse/emf/cdo/server/mem/IMEMStore.html" title="interface in org.eclipse.emf.cdo.server.mem"><CODE>IMEMStore</CODE></A></I><DT><A HREF="./org/eclipse/emf/cdo/server/mem/IMEMStore.html" title="interface in org.eclipse.emf.cdo.server.mem"><B>IMEMStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/mem/package-summary.html">org.eclipse.emf.cdo.server.mem</A><DD>A simple in-memory <A HREF="./org/eclipse/emf/cdo/server/IStore.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IMetaDataManager.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IMetaDataManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/mongodb/IMongoDBStore.html" title="interface in org.eclipse.emf.cdo.server.mongodb"><B>IMongoDBStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/mongodb/package-summary.html">org.eclipse.emf.cdo.server.mongodb</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/mongodb/IMongoDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.mongodb"><B>IMongoDBStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/mongodb/package-summary.html">org.eclipse.emf.cdo.server.mongodb</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/CDOServerImporter.html#importAll(java.io.InputStream, org.eclipse.emf.cdo.server.CDOServerImporter.Handler)"><B>importAll(InputStream, CDOServerImporter.Handler)</B></A> -
+ exception.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/IMappingStrategy.html" title="interface in org.eclipse.emf.cdo.server.db.mapping"><B>IMappingStrategy</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html">org.eclipse.emf.cdo.server.db.mapping</A><DD>The mapping strategy acts as a connection between the DBStore and the database management (and OR-mapping) classes.<DT><A HREF="./org/eclipse/emf/cdo/server/IMEMStore.html" title="interface in org.eclipse.emf.cdo.server"><B>IMEMStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/eclipse/emf/cdo/server/mem/IMEMStore.html" title="interface in org.eclipse.emf.cdo.server.mem"><CODE>IMEMStore</CODE></A></I><DT><A HREF="./org/eclipse/emf/cdo/server/mem/IMEMStore.html" title="interface in org.eclipse.emf.cdo.server.mem"><B>IMEMStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/mem/package-summary.html">org.eclipse.emf.cdo.server.mem</A><DD>A simple in-memory <A HREF="./org/eclipse/emf/cdo/server/IStore.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IMetaDataManager.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IMetaDataManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>Manages the <A HREF="./org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>elements</CODE></A> of the meta model level of a CDO <A HREF="./org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repository</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/mongodb/IMongoDBStore.html" title="interface in org.eclipse.emf.cdo.server.mongodb"><B>IMongoDBStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/mongodb/package-summary.html">org.eclipse.emf.cdo.server.mongodb</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/mongodb/IMongoDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.mongodb"><B>IMongoDBStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/mongodb/package-summary.html">org.eclipse.emf.cdo.server.mongodb</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/CDOServerImporter.html#importAll(java.io.InputStream, org.eclipse.emf.cdo.server.CDOServerImporter.Handler)"><B>importAll(InputStream, CDOServerImporter.Handler)</B></A> -
Method in class org.eclipse.emf.cdo.server.<A HREF="./org/eclipse/emf/cdo/server/CDOServerImporter.html" title="class in org.eclipse.emf.cdo.server">CDOServerImporter</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/server/CDOServerImporter.XML.html#importAll(java.io.InputStream, org.eclipse.emf.cdo.server.CDOServerImporter.Handler)"><B>importAll(InputStream, CDOServerImporter.Handler)</B></A> -
@@ -7030,9 +7035,11 @@ Method in class org.eclipse.emf.cdo.eresource.impl.<A HREF="./org/eclipse/emf/cd
<DT><A HREF="./org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.ContentsCDOList.html#inverseRemove(java.lang.Object, org.eclipse.emf.common.notify.NotificationChain)"><B>inverseRemove(Object, NotificationChain)</B></A> -
Method in class org.eclipse.emf.cdo.eresource.impl.<A HREF="./org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.ContentsCDOList.html" title="class in org.eclipse.emf.cdo.eresource.impl">CDOResourceImpl.ContentsCDOList</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStore.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>Interface to the Objecivity Store implemenation.<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStoreChunkReader</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStoreConfig.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStoreConfig</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/IPermissionManager.html" title="interface in org.eclipse.emf.cdo.server"><B>IPermissionManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides the protection level of protectable objects in the context of a specific user.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IPreparedStatementCache</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/db/IPreparedStatementCache.ReuseProbability.html" title="enum in org.eclipse.emf.cdo.server.db"><B>IPreparedStatementCache.ReuseProbability</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>An enum for the degree of probability to which a prepared statement is reused later on.<DT><A HREF="./org/eclipse/emf/cdo/server/IQueryContext.html" title="interface in org.eclipse.emf.cdo.server"><B>IQueryContext</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Represents the execution state of a <A HREF="./org/eclipse/emf/cdo/view/CDOQuery.html" title="interface in org.eclipse.emf.cdo.view"><CODE>query</CODE></A> in the server towards a <A HREF="./org/eclipse/emf/cdo/server/IQueryHandler.html" title="interface in org.eclipse.emf.cdo.server"><CODE>query
+<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStore.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStore</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>Interface to the Objecivity Store implemenation.<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStoreAccessor</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStoreChunkReader</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/IObjectivityStoreConfig.html" title="interface in org.eclipse.emf.cdo.server.objectivity"><B>IObjectivityStoreConfig</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html">org.eclipse.emf.cdo.server.objectivity</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/IPermissionManager.html" title="interface in org.eclipse.emf.cdo.server"><B>IPermissionManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides the protection level of protectable objects in the context of a specific user.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html" title="interface in org.eclipse.emf.cdo.server.db"><B>IPreparedStatementCache</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>Caches JDBC <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/sql/PreparedStatement.html?is-external=true" title="class or interface in java.sql"><CODE>statements</CODE></A> according to given <A HREF="./org/eclipse/emf/cdo/server/db/IPreparedStatementCache.ReuseProbability.html" title="enum in org.eclipse.emf.cdo.server.db"><CODE>reuse probabilities</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/db/IPreparedStatementCache.ReuseProbability.html" title="enum in org.eclipse.emf.cdo.server.db"><B>IPreparedStatementCache.ReuseProbability</B></A> - Enum in <A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html">org.eclipse.emf.cdo.server.db</A><DD>An enum for the degree of probability to which a prepared statement is reused later on.<DT><A HREF="./org/eclipse/emf/cdo/server/IQueryContext.html" title="interface in org.eclipse.emf.cdo.server"><B>IQueryContext</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Represents the execution state of a <A HREF="./org/eclipse/emf/cdo/view/CDOQuery.html" title="interface in org.eclipse.emf.cdo.view"><CODE>query</CODE></A> in the server towards a <A HREF="./org/eclipse/emf/cdo/server/IQueryHandler.html" title="interface in org.eclipse.emf.cdo.server"><CODE>query
handler</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IQueryHandler.html" title="interface in org.eclipse.emf.cdo.server"><B>IQueryHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>A query language handler that is capable of executing a <A HREF="./org/eclipse/emf/cdo/view/CDOQuery.html" title="interface in org.eclipse.emf.cdo.view"><CODE>query</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IQueryHandlerProvider.html" title="interface in org.eclipse.emf.cdo.server"><B>IQueryHandlerProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides the consumer with <A HREF="./org/eclipse/emf/cdo/server/IQueryHandler.html" title="interface in org.eclipse.emf.cdo.server"><CODE>query handlers</CODE></A> that are capable of executing <A HREF="./org/eclipse/emf/cdo/view/CDOQuery.html" title="interface in org.eclipse.emf.cdo.view"><CODE>queries</CODE></A> represented by specific <A HREF="./org/eclipse/emf/cdo/common/util/CDOQueryInfo.html" title="interface in org.eclipse.emf.cdo.common.util"><CODE>query infos</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>A CDO repository.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.Handler.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.Handler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>A marker interface to indicate valid arguments to <A HREF="./org/eclipse/emf/cdo/server/IRepository.html#addHandler(org.eclipse.emf.cdo.server.IRepository.Handler)"><CODE>IRepository.addHandler(Handler)</CODE></A> and
- <A HREF="./org/eclipse/emf/cdo/server/IRepository.html#removeHandler(org.eclipse.emf.cdo.server.IRepository.Handler)"><CODE>IRepository.removeHandler(Handler)</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.Props.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.Props</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Contains symbolic constants that specifiy valid keys of <A HREF="./org/eclipse/emf/cdo/server/IRepository.html#getProperties()"><CODE>repository properties</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.ReadAccessHandler.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.ReadAccessHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides a way to handle revisions that are to be sent to the client.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.WriteAccessHandler.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.WriteAccessHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides a way to handle commits that are received from a client.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepositoryFactory.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepositoryFactory</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Create CDO <A HREF="./org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/location/IRepositoryLocation.html" title="interface in org.eclipse.emf.cdo.location"><B>IRepositoryLocation</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/location/package-summary.html">org.eclipse.emf.cdo.location</A><DD>A CDO server independent representation of a repository.<DT><A HREF="./org/eclipse/emf/cdo/location/IRepositoryLocationManager.html" title="interface in org.eclipse.emf.cdo.location"><B>IRepositoryLocationManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/location/package-summary.html">org.eclipse.emf.cdo.location</A><DD>Manages a set of <A HREF="./org/eclipse/emf/cdo/location/IRepositoryLocation.html" title="interface in org.eclipse.emf.cdo.location"><CODE>repository locations</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/team/IRepositoryManager.html" title="interface in org.eclipse.emf.cdo.team"><B>IRepositoryManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/team/package-summary.html">org.eclipse.emf.cdo.team</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/team/IRepositoryProject.html" title="interface in org.eclipse.emf.cdo.team"><B>IRepositoryProject</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/team/package-summary.html">org.eclipse.emf.cdo.team</A><DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/server/IRepositoryProvider.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepositoryProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides the consumer with CDO <A HREF="./org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A> specified by their name.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepositorySynchronizer.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepositorySynchronizer</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Synchronizes a <A HREF="./org/eclipse/emf/cdo/server/ISynchronizableRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>synchronizable repository</CODE></A> with a master repository.<DT><A HREF="./org/eclipse/emf/cdo/session/CDOSessionConfiguration.html#isActivateOnOpen()"><B>isActivateOnOpen()</B></A> -
+ <A HREF="./org/eclipse/emf/cdo/server/IRepository.html#removeHandler(org.eclipse.emf.cdo.server.IRepository.Handler)"><CODE>IRepository.removeHandler(Handler)</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.Props.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.Props</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Contains symbolic constants that specifiy valid keys of <A HREF="./org/eclipse/emf/cdo/server/IRepository.html#getProperties()"><CODE>repository properties</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.ReadAccessHandler.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.ReadAccessHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides a way to handle revisions that are to be sent to the client.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.WriteAccessHandler.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepository.WriteAccessHandler</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides a way to handle commits that are received from a client.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepositoryFactory.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepositoryFactory</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Creates CDO <A HREF="./org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/location/IRepositoryLocation.html" title="interface in org.eclipse.emf.cdo.location"><B>IRepositoryLocation</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/location/package-summary.html">org.eclipse.emf.cdo.location</A><DD>A CDO server independent representation of a repository.<DT><A HREF="./org/eclipse/emf/cdo/location/IRepositoryLocationManager.html" title="interface in org.eclipse.emf.cdo.location"><B>IRepositoryLocationManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/location/package-summary.html">org.eclipse.emf.cdo.location</A><DD>Manages a set of <A HREF="./org/eclipse/emf/cdo/location/IRepositoryLocation.html" title="interface in org.eclipse.emf.cdo.location"><CODE>repository locations</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/team/IRepositoryManager.html" title="interface in org.eclipse.emf.cdo.team"><B>IRepositoryManager</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/team/package-summary.html">org.eclipse.emf.cdo.team</A><DD>Manages <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>.<DT><A HREF="./org/eclipse/emf/cdo/team/IRepositoryProject.html" title="interface in org.eclipse.emf.cdo.team"><B>IRepositoryProject</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/team/package-summary.html">org.eclipse.emf.cdo.team</A><DD>Represents a <CODE>project</CODE> that is mapped
+ to a CDO repository by the CDO <CODE>team provider</CODE>.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepositoryProvider.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepositoryProvider</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Provides the consumer with CDO <A HREF="./org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A> specified by their name.<DT><A HREF="./org/eclipse/emf/cdo/server/IRepositorySynchronizer.html" title="interface in org.eclipse.emf.cdo.server"><B>IRepositorySynchronizer</B></A> - Interface in <A HREF="./org/eclipse/emf/cdo/server/package-summary.html">org.eclipse.emf.cdo.server</A><DD>Synchronizes a <A HREF="./org/eclipse/emf/cdo/server/ISynchronizableRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>synchronizable repository</CODE></A> with a master repository.<DT><A HREF="./org/eclipse/emf/cdo/session/CDOSessionConfiguration.html#isActivateOnOpen()"><B>isActivateOnOpen()</B></A> -
Method in interface org.eclipse.emf.cdo.session.<A HREF="./org/eclipse/emf/cdo/session/CDOSessionConfiguration.html" title="interface in org.eclipse.emf.cdo.session">CDOSessionConfiguration</A>
<DD>Returns <code>true</code> if the session opened by <A HREF="./org/eclipse/emf/cdo/session/CDOSessionConfiguration.html#openSession()"><CODE>CDOSessionConfiguration.openSession()</CODE></A> will be automatically activated,
<code>false</code> otherwise.
@@ -8189,7 +8196,9 @@ Method in interface org.eclipse.emf.cdo.transaction.<A HREF="./org/eclipse/emf/c
<DT><A HREF="./org/eclipse/emf/cdo/view/CDOView.html#options()"><B>options()</B></A> -
Method in interface org.eclipse.emf.cdo.view.<A HREF="./org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view">CDOView</A>
<DD>&nbsp;
-<DT><A HREF="./org/eclipse/emf/cdo/package-summary.html"><B>org.eclipse.emf.cdo</B></A> - package org.eclipse.emf.cdo<DD>Client concepts like <A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>CDOObject</CODE></A> and <A HREF="./org/eclipse/emf/cdo/CDOState.html" title="enum in org.eclipse.emf.cdo"><CODE>CDOState</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/package-summary.html"><B>org.eclipse.emf.cdo.common</B></A> - package org.eclipse.emf.cdo.common<DD>Common concepts that are differently extended in clients and servers.<DT><A HREF="./org/eclipse/emf/cdo/common/branch/package-summary.html"><B>org.eclipse.emf.cdo.common.branch</B></A> - package org.eclipse.emf.cdo.common.branch<DD>Common concepts for dealing with branches.<DT><A HREF="./org/eclipse/emf/cdo/common/commit/package-summary.html"><B>org.eclipse.emf.cdo.common.commit</B></A> - package org.eclipse.emf.cdo.common.commit<DD>Common concepts for dealing with commits and change sets.<DT><A HREF="./org/eclipse/emf/cdo/common/commit/handler/package-summary.html"><B>org.eclipse.emf.cdo.common.commit.handler</B></A> - package org.eclipse.emf.cdo.common.commit.handler<DD>Some useful commit info handler implementations.<DT><A HREF="./org/eclipse/emf/cdo/common/id/package-summary.html"><B>org.eclipse.emf.cdo.common.id</B></A> - package org.eclipse.emf.cdo.common.id<DD>Common concepts for dealing with object and revision IDs.<DT><A HREF="./org/eclipse/emf/cdo/common/lob/package-summary.html"><B>org.eclipse.emf.cdo.common.lob</B></A> - package org.eclipse.emf.cdo.common.lob<DD>Common concepts for dealing with large binary objects and large character objects.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html"><B>org.eclipse.emf.cdo.common.lock</B></A> - package org.eclipse.emf.cdo.common.lock<DD>Common concepts for dealing with durable locks and views.<DT><A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html"><B>org.eclipse.emf.cdo.common.model</B></A> - package org.eclipse.emf.cdo.common.model<DD>Common concepts for dealing with models and types.<DT><A HREF="./org/eclipse/emf/cdo/common/protocol/package-summary.html"><B>org.eclipse.emf.cdo.common.protocol</B></A> - package org.eclipse.emf.cdo.common.protocol<DD>Common concepts for dealing with protocols and CDO-specific I/O.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/package-summary.html"><B>org.eclipse.emf.cdo.common.revision</B></A> - package org.eclipse.emf.cdo.common.revision<DD>Common concepts for dealing with revisions and revision lists.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/delta/package-summary.html"><B>org.eclipse.emf.cdo.common.revision.delta</B></A> - package org.eclipse.emf.cdo.common.revision.delta<DD>Common concepts for dealing with revision deltas and feature deltas.<DT><A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html"><B>org.eclipse.emf.cdo.common.security</B></A> - package org.eclipse.emf.cdo.common.security<DD>Common concepts for dealing with permissions and protectable entities.<DT><A HREF="./org/eclipse/emf/cdo/common/util/package-summary.html"><B>org.eclipse.emf.cdo.common.util</B></A> - package org.eclipse.emf.cdo.common.util<DD>Common utility classes, some common interfaces and exceptions.<DT><A HREF="./org/eclipse/emf/cdo/edit/package-summary.html"><B>org.eclipse.emf.cdo.edit</B></A> - package org.eclipse.emf.cdo.edit<DD>Useful base classes that can be referenced from custom EMF generator models.<DT><A HREF="./org/eclipse/emf/cdo/eresource/package-summary.html"><B>org.eclipse.emf.cdo.eresource</B></A> - package org.eclipse.emf.cdo.eresource<DD>The generated EMF API of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/eresource/impl/package-summary.html"><B>org.eclipse.emf.cdo.eresource.impl</B></A> - package org.eclipse.emf.cdo.eresource.impl<DD>The generated EMF implementation of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/eresource/provider/package-summary.html"><B>org.eclipse.emf.cdo.eresource.provider</B></A> - package org.eclipse.emf.cdo.eresource.provider<DD>The generated EMF edit support of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/eresource/util/package-summary.html"><B>org.eclipse.emf.cdo.eresource.util</B></A> - package org.eclipse.emf.cdo.eresource.util<DD>The generated EMF utilities of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/etypes/package-summary.html"><B>org.eclipse.emf.cdo.etypes</B></A> - package org.eclipse.emf.cdo.etypes<DD>The generated EMF API of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/etypes/impl/package-summary.html"><B>org.eclipse.emf.cdo.etypes.impl</B></A> - package org.eclipse.emf.cdo.etypes.impl<DD>The generated EMF implementation of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/etypes/provider/package-summary.html"><B>org.eclipse.emf.cdo.etypes.provider</B></A> - package org.eclipse.emf.cdo.etypes.provider<DD>The generated EMF edit support of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/etypes/util/package-summary.html"><B>org.eclipse.emf.cdo.etypes.util</B></A> - package org.eclipse.emf.cdo.etypes.util<DD>The generated EMF utilities of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/location/package-summary.html"><B>org.eclipse.emf.cdo.location</B></A> - package org.eclipse.emf.cdo.location<DD>Client concepts for dealing with repository locations and checkout sources.<DT><A HREF="./org/eclipse/emf/cdo/net4j/package-summary.html"><B>org.eclipse.emf.cdo.net4j</B></A> - package org.eclipse.emf.cdo.net4j<DD>Client concepts for dealing with Net4j-based sessions to remote repositories.<DT><A HREF="./org/eclipse/emf/cdo/server/package-summary.html"><B>org.eclipse.emf.cdo.server</B></A> - package org.eclipse.emf.cdo.server<DD>Server concepts for dealing with repositories and stores.<DT><A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html"><B>org.eclipse.emf.cdo.server.db</B></A> - package org.eclipse.emf.cdo.server.db<DD>Server concepts for dealing with DB stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html"><B>org.eclipse.emf.cdo.server.db.mapping</B></A> - package org.eclipse.emf.cdo.server.db.mapping<DD>Server concepts for dealing with mapping strategies and mappings for classes, lists and types.<DT><A HREF="./org/eclipse/emf/cdo/server/db4o/package-summary.html"><B>org.eclipse.emf.cdo.server.db4o</B></A> - package org.eclipse.emf.cdo.server.db4o<DD>Server concepts for dealing with DB4O stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/embedded/package-summary.html"><B>org.eclipse.emf.cdo.server.embedded</B></A> - package org.eclipse.emf.cdo.server.embedded<DD>Server concepts for dealing with embedded sessions.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html"><B>org.eclipse.emf.cdo.server.hibernate</B></A> - package org.eclipse.emf.cdo.server.hibernate<DD>Server concepts for dealing with Hibernate stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/mem/package-summary.html"><B>org.eclipse.emf.cdo.server.mem</B></A> - package org.eclipse.emf.cdo.server.mem<DD>Server concepts for dealing with in-memory stores.<DT><A HREF="./org/eclipse/emf/cdo/server/mongodb/package-summary.html"><B>org.eclipse.emf.cdo.server.mongodb</B></A> - package org.eclipse.emf.cdo.server.mongodb<DD>Server concepts for dealing with MongoDB stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/net4j/package-summary.html"><B>org.eclipse.emf.cdo.server.net4j</B></A> - package org.eclipse.emf.cdo.server.net4j<DD>Server concepts for dealing with Net4j-based repositories and fail-over infrastructure.<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html"><B>org.eclipse.emf.cdo.server.objectivity</B></A> - package org.eclipse.emf.cdo.server.objectivity<DD>Server concepts for dealing with Objectivity/DB stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/ocl/package-summary.html"><B>org.eclipse.emf.cdo.server.ocl</B></A> - package org.eclipse.emf.cdo.server.ocl<DD>Server implementation of a generic OCL query handler.<DT><A HREF="./org/eclipse/emf/cdo/session/package-summary.html"><B>org.eclipse.emf.cdo.session</B></A> - package org.eclipse.emf.cdo.session<DD>Client concepts for dealing with sessions to CDO repositories.<DT><A HREF="./org/eclipse/emf/cdo/session/remote/package-summary.html"><B>org.eclipse.emf.cdo.session.remote</B></A> - package org.eclipse.emf.cdo.session.remote<DD>Client concepts for the communication and collaboration with other sessions.<DT><A HREF="./org/eclipse/emf/cdo/team/package-summary.html"><B>org.eclipse.emf.cdo.team</B></A> - package org.eclipse.emf.cdo.team<DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html"><B>org.eclipse.emf.cdo.transaction</B></A> - package org.eclipse.emf.cdo.transaction<DD>Client concepts for dealing with transactions, distributed transactions and their save points.<DT><A HREF="./org/eclipse/emf/cdo/ui/package-summary.html"><B>org.eclipse.emf.cdo.ui</B></A> - package org.eclipse.emf.cdo.ui<DD>Reusable UI components specific to the CDO Model Repository.<DT><A HREF="./org/eclipse/emf/cdo/ui/ide/package-summary.html"><B>org.eclipse.emf.cdo.ui.ide</B></A> - package org.eclipse.emf.cdo.ui.ide<DD>Reusable UI IDE components specific to the CDO Model Repository.<DT><A HREF="./org/eclipse/emf/cdo/ui/widgets/package-summary.html"><B>org.eclipse.emf.cdo.ui.widgets</B></A> - package org.eclipse.emf.cdo.ui.widgets<DD>A library with reusable widgets.<DT><A HREF="./org/eclipse/emf/cdo/util/package-summary.html"><B>org.eclipse.emf.cdo.util</B></A> - package org.eclipse.emf.cdo.util<DD>Client utility classes, some common interfaces and exceptions.<DT><A HREF="./org/eclipse/emf/cdo/view/package-summary.html"><B>org.eclipse.emf.cdo.view</B></A> - package org.eclipse.emf.cdo.view<DD>Client concepts for dealing with views, view sets, queries, CDO objects and EMF resource sets.<DT><A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html"><B>org.eclipse.emf.cdo.workspace</B></A> - package org.eclipse.emf.cdo.workspace<DD>&nbsp;<DT><A HREF="./org/eclipse/emf/cdo/workspace/efs/package-summary.html"><B>org.eclipse.emf.cdo.workspace.efs</B></A> - package org.eclipse.emf.cdo.workspace.efs<DD>&nbsp;<DT><A HREF="./org/eclipse/emf/internal/cdo/package-summary.html"><B>org.eclipse.emf.internal.cdo</B></A> - package org.eclipse.emf.internal.cdo<DD>Exposes <A HREF="./org/eclipse/emf/internal/cdo/CDOObjectImpl.html" title="class in org.eclipse.emf.internal.cdo"><CODE>CDOObjectImpl</CODE></A> for extension in generated EMF models.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/CDORevisionUtil.AllRevisionsDumper.Stream.html#out()"><B>out()</B></A> -
+<DT><A HREF="./org/eclipse/emf/cdo/package-summary.html"><B>org.eclipse.emf.cdo</B></A> - package org.eclipse.emf.cdo<DD>Client concepts like <A HREF="./org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>CDOObject</CODE></A> and <A HREF="./org/eclipse/emf/cdo/CDOState.html" title="enum in org.eclipse.emf.cdo"><CODE>CDOState</CODE></A>.<DT><A HREF="./org/eclipse/emf/cdo/common/package-summary.html"><B>org.eclipse.emf.cdo.common</B></A> - package org.eclipse.emf.cdo.common<DD>Common concepts that are differently extended in clients and servers.<DT><A HREF="./org/eclipse/emf/cdo/common/branch/package-summary.html"><B>org.eclipse.emf.cdo.common.branch</B></A> - package org.eclipse.emf.cdo.common.branch<DD>Common concepts for dealing with branches.<DT><A HREF="./org/eclipse/emf/cdo/common/commit/package-summary.html"><B>org.eclipse.emf.cdo.common.commit</B></A> - package org.eclipse.emf.cdo.common.commit<DD>Common concepts for dealing with commits and change sets.<DT><A HREF="./org/eclipse/emf/cdo/common/commit/handler/package-summary.html"><B>org.eclipse.emf.cdo.common.commit.handler</B></A> - package org.eclipse.emf.cdo.common.commit.handler<DD>Some useful commit info handler implementations.<DT><A HREF="./org/eclipse/emf/cdo/common/id/package-summary.html"><B>org.eclipse.emf.cdo.common.id</B></A> - package org.eclipse.emf.cdo.common.id<DD>Common concepts for dealing with object and revision IDs.<DT><A HREF="./org/eclipse/emf/cdo/common/lob/package-summary.html"><B>org.eclipse.emf.cdo.common.lob</B></A> - package org.eclipse.emf.cdo.common.lob<DD>Common concepts for dealing with large binary objects and large character objects.<DT><A HREF="./org/eclipse/emf/cdo/common/lock/package-summary.html"><B>org.eclipse.emf.cdo.common.lock</B></A> - package org.eclipse.emf.cdo.common.lock<DD>Common concepts for dealing with durable locks and views.<DT><A HREF="./org/eclipse/emf/cdo/common/model/package-summary.html"><B>org.eclipse.emf.cdo.common.model</B></A> - package org.eclipse.emf.cdo.common.model<DD>Common concepts for dealing with models and types.<DT><A HREF="./org/eclipse/emf/cdo/common/protocol/package-summary.html"><B>org.eclipse.emf.cdo.common.protocol</B></A> - package org.eclipse.emf.cdo.common.protocol<DD>Common concepts for dealing with protocols and CDO-specific I/O.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/package-summary.html"><B>org.eclipse.emf.cdo.common.revision</B></A> - package org.eclipse.emf.cdo.common.revision<DD>Common concepts for dealing with revisions and revision lists.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/delta/package-summary.html"><B>org.eclipse.emf.cdo.common.revision.delta</B></A> - package org.eclipse.emf.cdo.common.revision.delta<DD>Common concepts for dealing with revision deltas and feature deltas.<DT><A HREF="./org/eclipse/emf/cdo/common/security/package-summary.html"><B>org.eclipse.emf.cdo.common.security</B></A> - package org.eclipse.emf.cdo.common.security<DD>Common concepts for dealing with permissions and protectable entities.<DT><A HREF="./org/eclipse/emf/cdo/common/util/package-summary.html"><B>org.eclipse.emf.cdo.common.util</B></A> - package org.eclipse.emf.cdo.common.util<DD>Common utility classes, some common interfaces and exceptions.<DT><A HREF="./org/eclipse/emf/cdo/edit/package-summary.html"><B>org.eclipse.emf.cdo.edit</B></A> - package org.eclipse.emf.cdo.edit<DD>Useful base classes that can be referenced from custom EMF generator models.<DT><A HREF="./org/eclipse/emf/cdo/eresource/package-summary.html"><B>org.eclipse.emf.cdo.eresource</B></A> - package org.eclipse.emf.cdo.eresource<DD>The generated EMF API of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/eresource/impl/package-summary.html"><B>org.eclipse.emf.cdo.eresource.impl</B></A> - package org.eclipse.emf.cdo.eresource.impl<DD>The generated EMF implementation of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/eresource/provider/package-summary.html"><B>org.eclipse.emf.cdo.eresource.provider</B></A> - package org.eclipse.emf.cdo.eresource.provider<DD>The generated EMF edit support of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/eresource/util/package-summary.html"><B>org.eclipse.emf.cdo.eresource.util</B></A> - package org.eclipse.emf.cdo.eresource.util<DD>The generated EMF utilities of the CDO repository file system.<DT><A HREF="./org/eclipse/emf/cdo/etypes/package-summary.html"><B>org.eclipse.emf.cdo.etypes</B></A> - package org.eclipse.emf.cdo.etypes<DD>The generated EMF API of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/etypes/impl/package-summary.html"><B>org.eclipse.emf.cdo.etypes.impl</B></A> - package org.eclipse.emf.cdo.etypes.impl<DD>The generated EMF implementation of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/etypes/provider/package-summary.html"><B>org.eclipse.emf.cdo.etypes.provider</B></A> - package org.eclipse.emf.cdo.etypes.provider<DD>The generated EMF edit support of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/etypes/util/package-summary.html"><B>org.eclipse.emf.cdo.etypes.util</B></A> - package org.eclipse.emf.cdo.etypes.util<DD>The generated EMF utilities of the CDO system data types and native annotations.<DT><A HREF="./org/eclipse/emf/cdo/location/package-summary.html"><B>org.eclipse.emf.cdo.location</B></A> - package org.eclipse.emf.cdo.location<DD>Client concepts for dealing with repository locations and checkout sources.<DT><A HREF="./org/eclipse/emf/cdo/net4j/package-summary.html"><B>org.eclipse.emf.cdo.net4j</B></A> - package org.eclipse.emf.cdo.net4j<DD>Client concepts for dealing with Net4j-based sessions to remote repositories.<DT><A HREF="./org/eclipse/emf/cdo/server/package-summary.html"><B>org.eclipse.emf.cdo.server</B></A> - package org.eclipse.emf.cdo.server<DD>Server concepts for dealing with repositories and stores.<DT><A HREF="./org/eclipse/emf/cdo/server/db/package-summary.html"><B>org.eclipse.emf.cdo.server.db</B></A> - package org.eclipse.emf.cdo.server.db<DD>Server concepts for dealing with DB stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/db/mapping/package-summary.html"><B>org.eclipse.emf.cdo.server.db.mapping</B></A> - package org.eclipse.emf.cdo.server.db.mapping<DD>Server concepts for dealing with mapping strategies and mappings for classes, lists and types.<DT><A HREF="./org/eclipse/emf/cdo/server/db4o/package-summary.html"><B>org.eclipse.emf.cdo.server.db4o</B></A> - package org.eclipse.emf.cdo.server.db4o<DD>Server concepts for dealing with DB4O stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/embedded/package-summary.html"><B>org.eclipse.emf.cdo.server.embedded</B></A> - package org.eclipse.emf.cdo.server.embedded<DD>Server concepts for dealing with embedded sessions.<DT><A HREF="./org/eclipse/emf/cdo/server/hibernate/package-summary.html"><B>org.eclipse.emf.cdo.server.hibernate</B></A> - package org.eclipse.emf.cdo.server.hibernate<DD>Server concepts for dealing with Hibernate stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/mem/package-summary.html"><B>org.eclipse.emf.cdo.server.mem</B></A> - package org.eclipse.emf.cdo.server.mem<DD>Server concepts for dealing with in-memory stores.<DT><A HREF="./org/eclipse/emf/cdo/server/mongodb/package-summary.html"><B>org.eclipse.emf.cdo.server.mongodb</B></A> - package org.eclipse.emf.cdo.server.mongodb<DD>Server concepts for dealing with MongoDB stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/net4j/package-summary.html"><B>org.eclipse.emf.cdo.server.net4j</B></A> - package org.eclipse.emf.cdo.server.net4j<DD>Server concepts for dealing with Net4j-based repositories and fail-over infrastructure.<DT><A HREF="./org/eclipse/emf/cdo/server/objectivity/package-summary.html"><B>org.eclipse.emf.cdo.server.objectivity</B></A> - package org.eclipse.emf.cdo.server.objectivity<DD>Server concepts for dealing with Objectivity/DB stores and accessors.<DT><A HREF="./org/eclipse/emf/cdo/server/ocl/package-summary.html"><B>org.eclipse.emf.cdo.server.ocl</B></A> - package org.eclipse.emf.cdo.server.ocl<DD>Server implementation of a generic OCL query handler.<DT><A HREF="./org/eclipse/emf/cdo/session/package-summary.html"><B>org.eclipse.emf.cdo.session</B></A> - package org.eclipse.emf.cdo.session<DD>Client concepts for dealing with sessions to CDO repositories.<DT><A HREF="./org/eclipse/emf/cdo/session/remote/package-summary.html"><B>org.eclipse.emf.cdo.session.remote</B></A> - package org.eclipse.emf.cdo.session.remote<DD>Client concepts for the communication and collaboration with other sessions.<DT><A HREF="./org/eclipse/emf/cdo/team/package-summary.html"><B>org.eclipse.emf.cdo.team</B></A> - package org.eclipse.emf.cdo.team<DD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE><DT><A HREF="./org/eclipse/emf/cdo/transaction/package-summary.html"><B>org.eclipse.emf.cdo.transaction</B></A> - package org.eclipse.emf.cdo.transaction<DD>Client concepts for dealing with transactions, distributed transactions and their save points.<DT><A HREF="./org/eclipse/emf/cdo/ui/package-summary.html"><B>org.eclipse.emf.cdo.ui</B></A> - package org.eclipse.emf.cdo.ui<DD>Reusable UI components specific to the CDO Model Repository.<DT><A HREF="./org/eclipse/emf/cdo/ui/ide/package-summary.html"><B>org.eclipse.emf.cdo.ui.ide</B></A> - package org.eclipse.emf.cdo.ui.ide<DD>Reusable UI IDE components specific to the CDO Model Repository.<DT><A HREF="./org/eclipse/emf/cdo/ui/widgets/package-summary.html"><B>org.eclipse.emf.cdo.ui.widgets</B></A> - package org.eclipse.emf.cdo.ui.widgets<DD>A library with reusable widgets.<DT><A HREF="./org/eclipse/emf/cdo/util/package-summary.html"><B>org.eclipse.emf.cdo.util</B></A> - package org.eclipse.emf.cdo.util<DD>Client utility classes, some common interfaces and exceptions.<DT><A HREF="./org/eclipse/emf/cdo/view/package-summary.html"><B>org.eclipse.emf.cdo.view</B></A> - package org.eclipse.emf.cdo.view<DD>Client concepts for dealing with views, view sets, queries, CDO objects and EMF resource sets.<DT><A HREF="./org/eclipse/emf/cdo/workspace/package-summary.html"><B>org.eclipse.emf.cdo.workspace</B></A> - package org.eclipse.emf.cdo.workspace<DD>Concepts to checkout, open and further operate CDO <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A><DT><A HREF="./org/eclipse/emf/cdo/workspace/efs/package-summary.html"><B>org.eclipse.emf.cdo.workspace.efs</B></A> - package org.eclipse.emf.cdo.workspace.efs<DD>Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="./org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A><DT><A HREF="./org/eclipse/emf/internal/cdo/package-summary.html"><B>org.eclipse.emf.internal.cdo</B></A> - package org.eclipse.emf.internal.cdo<DD>Exposes <A HREF="./org/eclipse/emf/internal/cdo/CDOObjectImpl.html" title="class in org.eclipse.emf.internal.cdo"><CODE>CDOObjectImpl</CODE></A> for extension in generated EMF models.<DT><A HREF="./org/eclipse/emf/cdo/common/revision/CDORevisionUtil.AllRevisionsDumper.Stream.html#out()"><B>out()</B></A> -
Method in class org.eclipse.emf.cdo.common.revision.<A HREF="./org/eclipse/emf/cdo/common/revision/CDORevisionUtil.AllRevisionsDumper.Stream.html" title="class in org.eclipse.emf.cdo.common.revision">CDORevisionUtil.AllRevisionsDumper.Stream</A>
<DD>&nbsp;
<DT><A HREF="./org/eclipse/emf/cdo/server/IRepository.Props.html#OVERRIDE_UUID"><B>OVERRIDE_UUID</B></A> -
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/class-use/CDOCommonRepository.IDGenerationLocation.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/class-use/CDOCommonRepository.IDGenerationLocation.html
index b9d8de1550..c1a8b405db 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/class-use/CDOCommonRepository.IDGenerationLocation.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/class-use/CDOCommonRepository.IDGenerationLocation.html
@@ -95,7 +95,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/common/CDOCommo
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOChangeSetData.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOChangeSetData.html
index 5d22910801..e588cae368 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOChangeSetData.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOChangeSetData.html
@@ -123,7 +123,7 @@ Packages that use <A HREF="../../../../../../../org/eclipse/emf/cdo/common/commi
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOCommitInfo.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOCommitInfo.html
index 6260fbc939..a79dda25e8 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOCommitInfo.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/class-use/CDOCommitInfo.html
@@ -115,7 +115,7 @@ Packages that use <A HREF="../../../../../../../org/eclipse/emf/cdo/common/commi
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/package-use.html
index 767e01ac11..2c373148b1 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/commit/package-use.html
@@ -131,7 +131,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/common/commit/p
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOID.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOID.html
index c0225931f2..54605a409d 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOID.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOID.html
@@ -155,7 +155,7 @@ Packages that use <A HREF="../../../../../../../org/eclipse/emf/cdo/common/id/CD
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.internal.cdo"><B>org.eclipse.emf.internal.cdo</B></A></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOIDGenerator.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOIDGenerator.html
index fa9b041f25..81f6b5d68c 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOIDGenerator.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/class-use/CDOIDGenerator.html
@@ -99,7 +99,7 @@ Packages that use <A HREF="../../../../../../../org/eclipse/emf/cdo/common/id/CD
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/package-use.html
index 1a7ea39b77..827c0ef3a2 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/id/package-use.html
@@ -179,7 +179,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/packa
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.internal.cdo"><B>org.eclipse.emf.internal.cdo</B></A></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/package-use.html
index b8455ddcba..87f3f16639 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/package-use.html
@@ -127,7 +127,7 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/common/package-sum
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/class-use/CDORevisionProvider.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/class-use/CDORevisionProvider.html
index bd574c8dbe..0aec50d981 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/class-use/CDORevisionProvider.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/class-use/CDORevisionProvider.html
@@ -111,7 +111,7 @@ Packages that use <A HREF="../../../../../../../org/eclipse/emf/cdo/common/revis
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/package-use.html
index dea3aa22ed..bf60616a94 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/common/revision/package-use.html
@@ -167,7 +167,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/common/revision
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.internal.cdo"><B>org.eclipse.emf.internal.cdo</B></A></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/class-use/ICheckoutSource.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/class-use/ICheckoutSource.html
index a8982caa8a..8702dc0139 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/class-use/ICheckoutSource.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/class-use/ICheckoutSource.html
@@ -91,7 +91,8 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/location/ICheck
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace.efs"><B>org.eclipse.emf.cdo.workspace.efs</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/package-use.html
index 56aafb859b..772a675f56 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/location/package-use.html
@@ -95,7 +95,8 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/location/package-s
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace.efs"><B>org.eclipse.emf.cdo.workspace.efs</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/IRepositoryFactory.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/IRepositoryFactory.html
index 868ff779c8..cedc0ff893 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/IRepositoryFactory.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/IRepositoryFactory.html
@@ -106,7 +106,7 @@ Interface IRepositoryFactory</H2>
<P>
-Create CDO <A HREF="../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A>.
+Creates CDO <A HREF="../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A>.
<P>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IQueryHandlerProvider.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IQueryHandlerProvider.html
index 861fce4e6f..da9ca1f7c6 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IQueryHandlerProvider.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IQueryHandlerProvider.html
@@ -198,7 +198,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IQueryHandlerProvi
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStoreAccessor</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.CanHandleClientAssignedIDs.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.CanHandleClientAssignedIDs.html
index 4d3517dba1..b0b50cd7f7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.CanHandleClientAssignedIDs.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.CanHandleClientAssignedIDs.html
@@ -120,7 +120,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStore.CanHandleCl
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStore</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main entry point to the API of CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.html
index 7caf873b88..1c1b17b304 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStore.html
@@ -119,7 +119,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStore.h
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
@@ -262,7 +262,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStore.html" title
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStore</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main entry point to the API of CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
@@ -287,7 +287,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStore.html" title
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db4o/IDB4OStore.html" title="interface in org.eclipse.emf.cdo.server.db4o">IDB4OStore</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main entry point to the API of CDO's integration with DB4O databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.Raw.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.Raw.html
index 587ff61a26..40382bde3b 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.Raw.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.Raw.html
@@ -124,7 +124,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.Raw
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStoreAccessor</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.html
index 0b1c980c14..7b82f36a52 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreAccessor.html
@@ -218,7 +218,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.htm
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStoreAccessor</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreChunkReader.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreChunkReader.html
index ea1cb913b4..b577d45a23 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreChunkReader.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/class-use/IStoreChunkReader.html
@@ -154,7 +154,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreChunkReader.
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStoreChunkReader</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server"><CODE>chunk reader</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/CDODBUtil.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/CDODBUtil.html
index f051602987..bf6a0f2d63 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/CDODBUtil.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/CDODBUtil.html
@@ -110,6 +110,10 @@ Class CDODBUtil</H2>
<P>
+Various static methods that may help in setting up and dealing with <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db"><CODE>DB stores</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStore.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStore.html
index 0295e5d380..1ca82334f7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStore.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStore.html
@@ -112,6 +112,10 @@ Interface IDBStore</H2>
<P>
+The main entry point to the API of CDO's proprietary object/relational mapper.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html
index d4420dbeca..d96da337d6 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html
@@ -110,6 +110,10 @@ Interface IDBStoreAccessor</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html
index 8a625f6e5f..8a8caf2665 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html
@@ -110,6 +110,10 @@ Interface IDBStoreChunkReader</H2>
<P>
+A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server"><CODE>chunk reader</CODE></A> for CDO's proprietary object/relational mapper.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IIDHandler.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IIDHandler.html
index 4e1e37164a..76876979e7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IIDHandler.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IIDHandler.html
@@ -110,6 +110,10 @@ Interface IIDHandler</H2>
<P>
+Abstracts the handling of <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/CDOID.html" title="interface in org.eclipse.emf.cdo.common.id"><CODE>IDs</CODE></A> of different <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/CDOID.ObjectType.html" title="enum in org.eclipse.emf.cdo.common.id"><CODE>ID types</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.0</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IMetaDataManager.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IMetaDataManager.html
index 4a5ad8552a..dcd5abf64a 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IMetaDataManager.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IMetaDataManager.html
@@ -105,6 +105,10 @@ Interface IMetaDataManager</H2>
<P>
+Manages the <A HREF="../../../../../../org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>elements</CODE></A> of the meta model level of a CDO <A HREF="../../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repository</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html
index 3d15ffb823..0961f4d25d 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html
@@ -105,6 +105,10 @@ Interface IPreparedStatementCache</H2>
<P>
+Caches JDBC <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/sql/PreparedStatement.html?is-external=true" title="class or interface in java.sql"><CODE>statements</CODE></A> according to given <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IPreparedStatementCache.ReuseProbability.html" title="enum in org.eclipse.emf.cdo.server.db"><CODE>reuse probabilities</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>2.0</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-summary.html
index 1750fc122c..87768b0b63 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-summary.html
@@ -112,7 +112,7 @@ Server concepts for dealing with DB stores and accessors.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStore</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The main entry point to the API of CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStore.Props.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStore.Props</A></B></TD>
@@ -120,23 +120,23 @@ Server concepts for dealing with DB stores and accessors.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStoreAccessor</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server.db">IDBStoreChunkReader</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server"><CODE>chunk reader</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IIDHandler.html" title="interface in org.eclipse.emf.cdo.server.db">IIDHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Abstracts the handling of <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/CDOID.html" title="interface in org.eclipse.emf.cdo.common.id"><CODE>IDs</CODE></A> of different <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/CDOID.ObjectType.html" title="enum in org.eclipse.emf.cdo.common.id"><CODE>ID types</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IMetaDataManager.html" title="interface in org.eclipse.emf.cdo.server.db">IMetaDataManager</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Manages the <A HREF="../../../../../../org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>elements</CODE></A> of the meta model level of a CDO <A HREF="../../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repository</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IPreparedStatementCache.html" title="interface in org.eclipse.emf.cdo.server.db">IPreparedStatementCache</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Caches JDBC <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/sql/PreparedStatement.html?is-external=true" title="class or interface in java.sql"><CODE>statements</CODE></A> according to given <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IPreparedStatementCache.ReuseProbability.html" title="enum in org.eclipse.emf.cdo.server.db"><CODE>reuse probabilities</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -150,7 +150,7 @@ Server concepts for dealing with DB stores and accessors.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/CDODBUtil.html" title="class in org.eclipse.emf.cdo.server.db">CDODBUtil</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Various static methods that may help in setting up and dealing with <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IDBStore.html" title="interface in org.eclipse.emf.cdo.server.db"><CODE>DB stores</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-use.html
index 51d110cb47..21cc760eb0 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db/package-use.html
@@ -110,31 +110,31 @@ Classes in <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/package-summ
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IDBStore.html#org.eclipse.emf.cdo.server.db"><B>IDBStore</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main entry point to the API of CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IDBStoreAccessor.html#org.eclipse.emf.cdo.server.db"><B>IDBStoreAccessor</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IIDHandler.html#org.eclipse.emf.cdo.server.db"><B>IIDHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abstracts the handling of <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/CDOID.html" title="interface in org.eclipse.emf.cdo.common.id"><CODE>IDs</CODE></A> of different <A HREF="../../../../../../org/eclipse/emf/cdo/common/id/CDOID.ObjectType.html" title="enum in org.eclipse.emf.cdo.common.id"><CODE>ID types</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IMetaDataManager.html#org.eclipse.emf.cdo.server.db"><B>IMetaDataManager</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Manages the <A HREF="../../../../../../org/eclipse/emf/cdo/common/model/CDOPackageUnit.html" title="interface in org.eclipse.emf.cdo.common.model"><CODE>elements</CODE></A> of the meta model level of a CDO <A HREF="../../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repository</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IPreparedStatementCache.html#org.eclipse.emf.cdo.server.db"><B>IPreparedStatementCache</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches JDBC <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/sql/PreparedStatement.html?is-external=true" title="class or interface in java.sql"><CODE>statements</CODE></A> according to given <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/IPreparedStatementCache.ReuseProbability.html" title="enum in org.eclipse.emf.cdo.server.db"><CODE>reuse probabilities</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IPreparedStatementCache.ReuseProbability.html#org.eclipse.emf.cdo.server.db"><B>IPreparedStatementCache.ReuseProbability</B></A></B>
@@ -155,19 +155,19 @@ Classes in <A HREF="../../../../../../org/eclipse/emf/cdo/server/db/package-summ
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IDBStore.html#org.eclipse.emf.cdo.server.db.mapping"><B>IDBStore</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main entry point to the API of CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IDBStoreAccessor.html#org.eclipse.emf.cdo.server.db.mapping"><B>IDBStoreAccessor</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreAccessor.html" title="interface in org.eclipse.emf.cdo.server"><CODE>store accessor</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db/class-use/IDBStoreChunkReader.html#org.eclipse.emf.cdo.server.db.mapping"><B>IDBStoreChunkReader</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A <A HREF="../../../../../../org/eclipse/emf/cdo/server/IStoreChunkReader.html" title="interface in org.eclipse.emf.cdo.server"><CODE>chunk reader</CODE></A> for CDO's proprietary object/relational mapper.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html
index db0407dd6e..81d0a737ee 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html
@@ -105,6 +105,10 @@ Interface IDB4OIdentifiableObject</H2>
<P>
+Represents DB4O objects with an <A HREF="../../../../../../org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html#getId()"><CODE>ID</CODE></A>.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OStore.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OStore.html
index 4581cbaab9..745bf05556 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OStore.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/IDB4OStore.html
@@ -110,6 +110,10 @@ Interface IDB4OStore</H2>
<P>
+The main entry point to the API of CDO's integration with DB4O databases.
+<P>
+
+<P>
<DL>
<DT><B>No Implement</B></DT>
<DD>This interface is not intended to be implemented by clients.</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/package-summary.html
index 9a39977f5e..e6ad6b28c7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/db4o/package-summary.html
@@ -102,11 +102,11 @@ Server concepts for dealing with DB4O stores and accessors.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html" title="interface in org.eclipse.emf.cdo.server.db4o">IDB4OIdentifiableObject</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Represents DB4O objects with an <A HREF="../../../../../../org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.html#getId()"><CODE>ID</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/server/db4o/IDB4OStore.html" title="interface in org.eclipse.emf.cdo.server.db4o">IDB4OStore</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>The main entry point to the API of CDO's integration with DB4O databases.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-summary.html
index 53cc653caf..10ee9dc482 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-summary.html
@@ -209,7 +209,7 @@ Server concepts for dealing with repositories and stores.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/server/IRepositoryFactory.html" title="interface in org.eclipse.emf.cdo.server">IRepositoryFactory</A></B></TD>
-<TD>Create CDO <A HREF="../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A>.</TD>
+<TD>Creates CDO <A HREF="../../../../../org/eclipse/emf/cdo/server/IRepository.html" title="interface in org.eclipse.emf.cdo.server"><CODE>repositories</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/server/IRepositoryProvider.html" title="interface in org.eclipse.emf.cdo.server">IRepositoryProvider</A></B></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-use.html
index e1f4752700..88de3688eb 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/server/package-use.html
@@ -135,7 +135,7 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/server/package-sum
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/class-use/CDOSessionConfigurationFactory.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/class-use/CDOSessionConfigurationFactory.html
index a22d3376cf..9cf2446dec 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/class-use/CDOSessionConfigurationFactory.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/class-use/CDOSessionConfigurationFactory.html
@@ -103,7 +103,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/session/CDOSess
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/package-use.html
index ccbb07c148..338a965a68 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/session/package-use.html
@@ -139,7 +139,7 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/session/package-su
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.html
index 8f9817541d..5b10381770 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.html
@@ -101,8 +101,9 @@ Interface IRepositoryManager</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="IRepositoryManager.html" title="&#171;interface&#187; IRepositoryManager" alt="" coords="38,100,175,140"/>
-<area shape="rect" id="node2" title="&#171;interface&#187; IContainer (org.eclipse.net4j.util.container)" alt="" coords="5,6,208,61"/>
+<area shape="rect" id="node1" href="IRepositoryProject.html" title="&#171;interface&#187; IRepositoryProject" alt="" coords="5,13,133,53"/>
+<area shape="rect" id="node2" href="IRepositoryManager.html" title="&#171;interface&#187; IRepositoryManager" alt="" coords="98,117,235,157"/>
+<area shape="rect" id="node3" title="&#171;interface&#187; IContainer (org.eclipse.net4j.util.container)" alt="" coords="163,6,365,61"/>
</map>
<CENTER><IMG SRC="IRepositoryManager.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -110,6 +111,11 @@ Interface IRepositoryManager</H2>
<P>
+Manages <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.png
index 322bb33aac..4cd916428a 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryManager.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.html
index 986e13000b..b6dbd3c964 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.html
@@ -101,8 +101,9 @@ Interface IRepositoryProject</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="IRepositoryProject.html" title="&#171;interface&#187; IRepositoryProject" alt="" coords="25,100,153,140"/>
-<area shape="rect" id="node2" title="&#171;interface&#187; IAdaptable (org.eclipse.core.runtime)" alt="" coords="5,6,173,61"/>
+<area shape="rect" id="node1" href="IRepositoryProject.html" title="&#171;interface&#187; IRepositoryProject" alt="" coords="25,104,153,144"/>
+<area shape="rect" id="node2" href="IRepositoryManager.html" title="&#171;interface&#187; IRepositoryManager" alt="" coords="21,200,157,240"/>
+<area shape="rect" id="node3" title="&#171;interface&#187; IAdaptable (org.eclipse.core.runtime)" alt="" coords="5,6,173,61"/>
</map>
<CENTER><IMG SRC="IRepositoryProject.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -110,6 +111,11 @@ Interface IRepositoryProject</H2>
<P>
+Represents a <CODE>project</CODE> that is mapped
+ to a CDO repository by the CDO <CODE>team provider</CODE>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.png
index 1752497f57..9d2d835ecd 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/IRepositoryProject.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryManager.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryManager.html
index 1b97662195..58e5fa9c4f 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryManager.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryManager.html
@@ -91,7 +91,8 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/team/IRepositor
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.team"><B>org.eclipse.emf.cdo.team</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html
index 9e7a243b3a..07b86b24b2 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html
@@ -91,7 +91,8 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/team/IRepositor
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.team"><B>org.eclipse.emf.cdo.team</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.ui.ide"><B>org.eclipse.emf.cdo.ui.ide</B></A></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.html
index a0d8dcbbf3..176dfe26c0 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.html
@@ -82,12 +82,17 @@ function windowTitle()
<H2>
Package org.eclipse.emf.cdo.team
</H2>
+<A NAME="package_description"><!-- --></A>
+Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>
+
+<P>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" title="&#171;interface&#187; IAdaptable (org.eclipse.core.runtime)" alt="" coords="22,83,191,138"/>
-<area shape="rect" id="node2" title="&#171;interface&#187; IContainer (org.eclipse.net4j.util.container)" alt="" coords="5,5,208,59"/>
-<area shape="rect" id="node3" href="IRepositoryManager.html" title="&#171;interface&#187; IRepositoryManager" alt="" coords="238,12,375,52"/>
-<area shape="rect" id="node4" href="IRepositoryProject.html" title="&#171;interface&#187; IRepositoryProject" alt="" coords="243,91,371,131"/>
+<area shape="rect" id="node1" title="&#171;interface&#187; IAdaptable (org.eclipse.core.runtime)" alt="" coords="6,5,175,59"/>
+<area shape="rect" id="node2" title="&#171;interface&#187; IContainer (org.eclipse.net4j.util.container)" alt="" coords="208,77,411,131"/>
+<area shape="rect" id="node3" href="IRepositoryManager.html" title="&#171;interface&#187; IRepositoryManager" alt="" coords="510,56,647,96"/>
+<area shape="rect" id="node4" href="IRepositoryProject.html" title="&#171;interface&#187; IRepositoryProject" alt="" coords="245,12,373,52"/>
</map>
<CENTER><IMG SRC="package-summary.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -99,16 +104,21 @@ Package org.eclipse.emf.cdo.team
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/team/IRepositoryManager.html" title="interface in org.eclipse.emf.cdo.team">IRepositoryManager</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Manages <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/team/IRepositoryProject.html" title="interface in org.eclipse.emf.cdo.team">IRepositoryProject</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Represents a <CODE>project</CODE> that is mapped
+ to a CDO repository by the CDO <CODE>team provider</CODE>.</TD>
</TR>
</TABLE>
&nbsp;
<P>
+<P>
+
+<P>
<DL>
</DL>
<HR>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.png
index f5a8b96cef..774a08fc28 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-summary.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-use.html
index c33634ebe6..a25a060fe1 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/team/package-use.html
@@ -91,7 +91,8 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/team/package-summa
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.team"><B>org.eclipse.emf.cdo.team</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.ui.ide"><B>org.eclipse.emf.cdo.ui.ide</B></A></TD>
@@ -110,13 +111,15 @@ Classes in <A HREF="../../../../../org/eclipse/emf/cdo/team/package-summary.html
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/team/class-use/IRepositoryManager.html#org.eclipse.emf.cdo.team"><B>IRepositoryManager</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Manages <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html#org.eclipse.emf.cdo.team"><B>IRepositoryProject</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a <CODE>project</CODE> that is mapped
+ to a CDO repository by the CDO <CODE>team provider</CODE>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -131,7 +134,8 @@ Classes in <A HREF="../../../../../org/eclipse/emf/cdo/team/package-summary.html
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html#org.eclipse.emf.cdo.ui.ide"><B>IRepositoryProject</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a <CODE>project</CODE> that is mapped
+ to a CDO repository by the CDO <CODE>team provider</CODE>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html
index de99817571..5fd8dd7e44 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html
@@ -118,6 +118,10 @@ Class CDOPostEventTransactionHandler.Default</H2>
<P>
+An empty default implementation of <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html
index c5b56661da..f0ffe264c0 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html
@@ -109,9 +109,10 @@ Class CDOPostEventTransactionHandler</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="CDOTransactionHandler.html" title="&#171;interface&#187; CDOTransactionHandler" alt="" coords="57,5,217,45"/>
-<area shape="rect" id="node2" href="CDOPostEventTransactionHandler.html" title="CDOPostEventTransactionHandler" alt="" coords="26,85,248,110"/>
-<area shape="rect" id="node3" href="CDOPostEventTransactionHandler.Default.html" title="CDOPostEventTransactionHandler.Default" alt="" coords="5,150,269,175"/>
+<area shape="rect" id="node1" href="CDOTransactionHandler1.html" title="&#171;interface&#187; CDOTransactionHandler1" alt="" coords="5,171,173,211"/>
+<area shape="rect" id="node2" href="CDOTransactionHandler.html" title="&#171;interface&#187; CDOTransactionHandler" alt="" coords="131,5,292,45"/>
+<area shape="rect" id="node3" href="CDOPostEventTransactionHandler.html" title="CDOPostEventTransactionHandler" alt="" coords="101,89,323,114"/>
+<area shape="rect" id="node4" href="CDOPostEventTransactionHandler.Default.html" title="CDOPostEventTransactionHandler.Default" alt="" coords="203,178,467,203"/>
</map>
<CENTER><IMG SRC="CDOPostEventTransactionHandler.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -119,10 +120,15 @@ Class CDOPostEventTransactionHandler</H2>
<P>
+An abstract call-back class that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>CDOTransactionHandler1</CODE></A></DL>
<HR>
<P>
@@ -140,7 +146,7 @@ Class CDOPostEventTransactionHandler</H2>
<TD><CODE><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty default implementation of <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
@@ -305,7 +311,7 @@ public void <B>attachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/t
<p>
<b>Note:</b> Implementors <b>must not</b> start threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> and wait for their
completion since deadlocks can result. The following example causes a deadlock:<br>
-
+
<pre>
getDisplay().syncExec(new Runnable()
{
@@ -321,7 +327,7 @@ public void <B>attachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/t
}
});
</pre>
-
+
If you need to synchronously execute threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> you should use
<A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOAsyncTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOAsyncTransactionHandler</CODE></A>.
<P>
@@ -348,7 +354,7 @@ public void <B>modifyingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/t
<p>
<b>Note:</b> Implementors <b>must not</b> start threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> and wait for their
completion since deadlocks can result. The following example causes a deadlock:<br>
-
+
<pre>
getDisplay().syncExec(new Runnable()
{
@@ -364,7 +370,7 @@ public void <B>modifyingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/t
}
});
</pre>
-
+
If you need to synchronously execute threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> you should use
<A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOAsyncTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOAsyncTransactionHandler</CODE></A>.
<P>
@@ -390,7 +396,7 @@ public void <B>detachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/t
<p>
<b>Note:</b> Implementors <b>must not</b> start threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> and wait for their
completion since deadlocks can result. The following example causes a deadlock:<br>
-
+
<pre>
getDisplay().syncExec(new Runnable()
{
@@ -406,7 +412,7 @@ public void <B>detachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/t
}
});
</pre>
-
+
If you need to synchronously execute threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> you should use
<A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOAsyncTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOAsyncTransactionHandler</CODE></A>.
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.png
index ae14588d83..850a2b8f69 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransaction.Options.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransaction.Options.html
index aa9ab28309..6fca1849b7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransaction.Options.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransaction.Options.html
@@ -160,7 +160,7 @@ Encapsulates a set of notifying <A HREF="../../../../../org/eclipse/emf/cdo/tran
<TH ALIGN="left"><B>Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.view.<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.CacheReferenceTypeEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.ChangeSubscriptionPoliciesEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.DetachmenNotificationEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.FeatureAnalyzerEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.InvalidationNotificationEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationPolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.InvalidationPolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.LoadNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.LoadNotificationEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.ReferencePolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.RevisionPrefetchingPolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.StaleReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.StaleReferencePolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.StrongReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.StrongReferencePolicyEvent</A></CODE></TD>
+<TD><CODE><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.CacheReferenceTypeEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.ChangeSubscriptionPoliciesEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.DetachmentNotificationEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.FeatureAnalyzerEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.InvalidationNotificationEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationPolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.InvalidationPolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.LoadNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.LoadNotificationEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.ReferencePolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.RevisionPrefetchingPolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.StaleReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.StaleReferencePolicyEvent</A>, <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.StrongReferencePolicyEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.StrongReferencePolicyEvent</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html
index 3a13eee52c..212e4fac1f 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html
@@ -107,10 +107,11 @@ Interface CDOTransactionHandler1</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" href="CDOTransactionHandlerBase.html" title="&#171;interface&#187; CDOTransactionHandlerBase" alt="" coords="97,5,287,45"/>
-<area shape="rect" id="node2" href="CDOTransactionHandler1.html" title="&#171;interface&#187; CDOTransactionHandler1" alt="" coords="108,84,276,124"/>
-<area shape="rect" id="node3" href="CDOTransactionHandler.html" title="&#171;interface&#187; CDOTransactionHandler" alt="" coords="5,163,165,203"/>
-<area shape="rect" id="node4" href="CDODefaultTransactionHandler1.html" title="CDODefaultTransactionHandler1" alt="" coords="196,170,404,195"/>
+<area shape="rect" id="node1" href="CDOTransactionHandlerBase.html" title="&#171;interface&#187; CDOTransactionHandlerBase" alt="" coords="5,5,195,45"/>
+<area shape="rect" id="node2" href="CDOTransactionHandler1.html" title="&#171;interface&#187; CDOTransactionHandler1" alt="" coords="133,101,301,141"/>
+<area shape="rect" id="node3" href="CDOTransactionHandler.html" title="&#171;interface&#187; CDOTransactionHandler" alt="" coords="30,184,191,224"/>
+<area shape="rect" id="node4" href="CDOPostEventTransactionHandler.html" title="CDOPostEventTransactionHandler" alt="" coords="225,13,447,38"/>
+<area shape="rect" id="node5" href="CDODefaultTransactionHandler1.html" title="CDODefaultTransactionHandler1" alt="" coords="221,191,429,217"/>
</map>
<CENTER><IMG SRC="CDOTransactionHandler1.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -118,7 +119,7 @@ Interface CDOTransactionHandler1</H2>
<P>
-A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
+A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
attached, modified or detached.
<P>
@@ -126,7 +127,7 @@ A call-back interface that is called by a <A HREF="../../../../../org/eclipse/em
<DL>
<DT><B>Since:</B></DT>
<DD>4.0</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A></DL>
<HR>
<P>
@@ -193,7 +194,7 @@ void <B>attachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/transact
<p>
<b>Note:</b> Implementors <b>must not</b> start threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> and wait for their
completion since deadlocks can result. The following example causes a deadlock:<br>
-
+
<pre>
getDisplay().syncExec(new Runnable()
{
@@ -209,7 +210,7 @@ void <B>attachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/transact
}
});
</pre>
-
+
If you need to synchronously execute threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> you should use
<A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOAsyncTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOAsyncTransactionHandler</CODE></A>.
<P>
@@ -234,7 +235,7 @@ void <B>detachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/transact
<p>
<b>Note:</b> Implementors <b>must not</b> start threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> and wait for their
completion since deadlocks can result. The following example causes a deadlock:<br>
-
+
<pre>
getDisplay().syncExec(new Runnable()
{
@@ -250,7 +251,7 @@ void <B>detachingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/transact
}
});
</pre>
-
+
If you need to synchronously execute threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> you should use
<A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOAsyncTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOAsyncTransactionHandler</CODE></A>.
<P>
@@ -276,7 +277,7 @@ void <B>modifyingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/transact
<p>
<b>Note:</b> Implementors <b>must not</b> start threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> and wait for their
completion since deadlocks can result. The following example causes a deadlock:<br>
-
+
<pre>
getDisplay().syncExec(new Runnable()
{
@@ -292,7 +293,7 @@ void <B>modifyingObject</B>(<A HREF="../../../../../org/eclipse/emf/cdo/transact
}
});
</pre>
-
+
If you need to synchronously execute threads which access the <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html" title="interface in org.eclipse.emf.cdo.view"><CODE>view</CODE></A> you should use
<A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOAsyncTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOAsyncTransactionHandler</CODE></A>.
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.png
index 9b2d4586cf..4c7175ff0b 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html
index 06ba586a27..d17bd34ce3 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html
@@ -119,7 +119,7 @@ Interface CDOTransactionHandler2</H2>
<P>
-A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
+A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
been committed or rolled back.
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html
index 4e7988ce0b..d38c91c54c 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html
@@ -114,8 +114,8 @@ Interface CDOTransactionHandler3</H2>
<P>
-A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.
+A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed (with result info) or rolled back.
<P>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOMerger.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOMerger.html
index 141708db63..02a96ea994 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOMerger.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOMerger.html
@@ -95,7 +95,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDO
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOPostEventTransactionHandler.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOPostEventTransactionHandler.html
index f62aea8498..78fb21dd4b 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOPostEventTransactionHandler.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOPostEventTransactionHandler.html
@@ -116,7 +116,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventT
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty default implementation of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransaction.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransaction.html
index fc247d5e0b..871f1f98fc 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransaction.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransaction.html
@@ -99,7 +99,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDO
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler.html
index d56e9eaaa3..cfdc7e63cd 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler.html
@@ -132,7 +132,8 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract call-back class that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -140,7 +141,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty default implementation of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler1.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler1.html
index e8d89de7f2..15d7b4f5fe 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler1.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler1.html
@@ -165,7 +165,8 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract call-back class that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -173,7 +174,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty default implementation of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler2.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler2.html
index 519d8de245..79c8ddbf51 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler2.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler2.html
@@ -124,8 +124,8 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler3</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed (with result info) or rolled back.</TD>
</TR>
</TABLE>
&nbsp;
@@ -173,7 +173,8 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract call-back class that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -181,7 +182,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty default implementation of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandlerBase.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandlerBase.html
index 24254a8c5b..abe8c54aa0 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandlerBase.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandlerBase.html
@@ -124,7 +124,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler1</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when <A HREF="../../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before <A HREF="../../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
@@ -133,7 +133,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler2</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
been committed or rolled back.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
@@ -142,8 +142,8 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler3</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed (with result info) or rolled back.</TD>
</TR>
</TABLE>
&nbsp;
@@ -208,7 +208,8 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract call-back class that is called by a <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -216,7 +217,7 @@ Uses of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOTransactio
<TD><CODE><B><A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty default implementation of <A HREF="../../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-summary.html
index 446d54942b..8c369366d7 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-summary.html
@@ -189,18 +189,18 @@ Client concepts for dealing with transactions, distributed transactions and thei
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler1</A></B></TD>
-<TD>A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
+<TD>A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler2</A></B></TD>
-<TD>A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
+<TD>A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
been committed or rolled back.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandler3</A></B></TD>
-<TD>A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.</TD>
+<TD>A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed (with result info) or rolled back.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransactionHandlerBase.html" title="interface in org.eclipse.emf.cdo.transaction">CDOTransactionHandlerBase</A></B></TD>
@@ -266,11 +266,12 @@ Client concepts for dealing with transactions, distributed transactions and thei
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An abstract call-back class that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.Default.html" title="class in org.eclipse.emf.cdo.transaction">CDOPostEventTransactionHandler.Default</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An empty default implementation of <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.html" title="class in org.eclipse.emf.cdo.transaction"><CODE>CDOPostEventTransactionHandler</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOPushTransaction.html" title="class in org.eclipse.emf.cdo.transaction">CDOPushTransaction</A></B></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-use.html
index 310d1425aa..69e152241c 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/transaction/package-use.html
@@ -107,7 +107,7 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/transaction/packag
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
@@ -190,7 +190,8 @@ Classes in <A HREF="../../../../../org/eclipse/emf/cdo/transaction/package-summa
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/class-use/CDOPostEventTransactionHandler.html#org.eclipse.emf.cdo.transaction"><B>CDOPostEventTransactionHandler</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract call-back class that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> after <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> have been
+ attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/class-use/CDOSavepoint.html#org.eclipse.emf.cdo.transaction"><B>CDOSavepoint</B></A></B>
@@ -227,22 +228,22 @@ Classes in <A HREF="../../../../../org/eclipse/emf/cdo/transaction/package-summa
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler1.html#org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler1</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before <A HREF="../../../../../org/eclipse/emf/cdo/CDOObject.html" title="interface in org.eclipse.emf.cdo"><CODE>objects</CODE></A> are
attached, modified or detached.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler2.html#org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler2</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
been committed or rolled back.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandler3.html#org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandler3</B></A></B>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> when it is about to be committed, has
- been committed or rolled back.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call-back interface that is called by a <A HREF="../../../../../org/eclipse/emf/cdo/transaction/CDOTransaction.html" title="interface in org.eclipse.emf.cdo.transaction"><CODE>transcation</CODE></A> before it is committed and after it has
+ been committed (with result info) or rolled back.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../../../org/eclipse/emf/cdo/transaction/class-use/CDOTransactionHandlerBase.html#org.eclipse.emf.cdo.transaction"><B>CDOTransactionHandlerBase</B></A></B>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/CDOBalancedTree.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/CDOBalancedTree.html
index 8f61d335f9..bf856b5ec5 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/CDOBalancedTree.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/CDOBalancedTree.html
@@ -110,6 +110,12 @@ Class CDOBalancedTree</H2>
<P>
+A utility class that attaches <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>objects</CODE></A> to a <A HREF="../../../../../org/eclipse/emf/cdo/eresource/CDOResourceFolder.html" title="interface in org.eclipse.emf.cdo.eresource"><CODE>folder</CODE></A> rooted, balanced tree such that configurable
+ capacities for resources per folder and objects per resource are never exceeded. This class is useful if a large number of objects
+ does not form a tree naturally but long lists would hinder fast lazy loading.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/class-use/CommitException.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/class-use/CommitException.html
index 7347739fee..d3134bfc8e 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/class-use/CommitException.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/class-use/CommitException.html
@@ -99,7 +99,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/util/CommitExce
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-summary.html
index af6372e634..b994b7180c 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-summary.html
@@ -143,7 +143,8 @@ Client utility classes, some common interfaces and exceptions.
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/util/CDOBalancedTree.html" title="class in org.eclipse.emf.cdo.util">CDOBalancedTree</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A utility class that attaches <A HREF="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore"><CODE>objects</CODE></A> to a <A HREF="../../../../../org/eclipse/emf/cdo/eresource/CDOResourceFolder.html" title="interface in org.eclipse.emf.cdo.eresource"><CODE>folder</CODE></A> rooted, balanced tree such that configurable
+ capacities for resources per folder and objects per resource are never exceeded.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/util/CDOLazyContentAdapter.html" title="class in org.eclipse.emf.cdo.util">CDOLazyContentAdapter</A></B></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-use.html
index 8f8430ccf6..41ec4540e8 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/util/package-use.html
@@ -115,7 +115,7 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/util/package-summa
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html
index 6264751ef6..fd53b2d03e 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html
@@ -56,7 +56,7 @@ function windowTitle()
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
@@ -180,7 +180,7 @@ An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.png
deleted file mode 100644
index 29896ed15e..0000000000
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html
index 79d559d5a3..92bf305f59 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html
@@ -4,7 +4,7 @@
<HEAD>
<TITLE>
-CDOView.Options.DetachmenNotificationEvent (CDO Model Repository Documentation)
+CDOView.Options.DetachmentNotificationEvent (CDO Model Repository Documentation)
</TITLE>
<META NAME="date" CONTENT="">
@@ -16,7 +16,7 @@ CDOView.Options.DetachmenNotificationEvent (CDO Model Repository Documentation)
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="CDOView.Options.DetachmenNotificationEvent (CDO Model Repository Documentation)";
+ parent.document.title="CDOView.Options.DetachmentNotificationEvent (CDO Model Repository Documentation)";
}
}
</SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmenNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmentNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
@@ -58,8 +58,8 @@ function windowTitle()
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+ <A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
@@ -90,7 +90,7 @@ DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
<FONT SIZE="-1">
org.eclipse.emf.cdo.view</FONT>
<BR>
-Interface CDOView.Options.DetachmenNotificationEvent</H2>
+Interface CDOView.Options.DetachmentNotificationEvent</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/IEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.event">IEvent</A>, <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options">IOptionsEvent</A></DD>
</DL>
@@ -99,16 +99,16 @@ Interface CDOView.Options.DetachmenNotificationEvent</H2>
</DL>
<HR>
<DL>
- <DT>public static interface <B>CDOView.Options.DetachmenNotificationEvent</B>
+ <DT>public static interface <B>CDOView.Options.DetachmentNotificationEvent</B>
<DD>extends <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options">IOptionsEvent</A>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" title="&#171;interface&#187; IOptionsEvent (org.eclipse.net4j.util.options)" alt="" coords="56,6,248,61"/>
-<area shape="rect" id="node2" href="CDOView.Options.DetachmenNotificationEvent.html" title="&#171;interface&#187; CDOView.Options.DetachmenNotificationEvent" alt="" coords="5,100,299,140"/>
+<area shape="rect" id="node1" title="&#171;interface&#187; IOptionsEvent (org.eclipse.net4j.util.options)" alt="" coords="57,6,249,61"/>
+<area shape="rect" id="node2" href="CDOView.Options.DetachmentNotificationEvent.html" title="&#171;interface&#187; CDOView.Options.DetachmentNotificationEvent" alt="" coords="5,100,301,140"/>
</map>
-<CENTER><IMG SRC="CDOView.Options.DetachmenNotificationEvent.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
+<CENTER><IMG SRC="CDOView.Options.DetachmentNotificationEvent.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -166,7 +166,7 @@ An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmenNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmentNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
@@ -183,8 +183,8 @@ An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+ <A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.png
new file mode 100644
index 0000000000..c4fe3c6f26
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html
index 7952c4a5cf..41bfa0a107 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html
@@ -55,7 +55,7 @@ function windowTitle()
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
@@ -105,7 +105,8 @@ Interface CDOView.Options.FeatureAnalyzerEvent</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" title="&#171;interface&#187; IOptionsEvent (org.eclipse.net4j.util.options)" alt="" coords="39,6,231,61"/>
-<area shape="rect" id="node2" href="CDOView.Options.FeatureAnalyzerEvent.html" title="&#171;interface&#187; CDOView.Options.FeatureAnalyzerEvent" alt="" coords="5,100,264,140"/>
+<area shape="rect" id="node2" href="CDOView.Options.FeatureAnalyzerEvent.html" title="&#171;interface&#187; CDOView.Options.FeatureAnalyzerEvent" alt="" coords="5,104,264,144"/>
+<area shape="rect" id="node3" href="CDOView.Options.html" title="&#171;interface&#187; CDOView.Options" alt="" coords="71,200,197,240"/>
</map>
<CENTER><IMG SRC="CDOView.Options.FeatureAnalyzerEvent.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -113,6 +114,12 @@ Interface CDOView.Options.FeatureAnalyzerEvent</H2>
<P>
+An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
+ <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.html#setFeatureAnalyzer(org.eclipse.emf.cdo.view.CDOFeatureAnalyzer)"><CODE>feature analyzer</CODE></A> option has
+ changed.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
@@ -175,7 +182,7 @@ Interface CDOView.Options.FeatureAnalyzerEvent</H2>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.png
index 2ae4e30ec5..6468d46f8c 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.html
index 3ea7f07e48..fbd900f1fd 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.html
@@ -109,21 +109,22 @@ Interface CDOView.Options</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="CDOAdapterPolicy.html" title="&#171;interface&#187; CDOAdapterPolicy" alt="" coords="103,5,233,45"/>
<area shape="rect" id="node2" href="../common/CDOCommonView.Options.html" title="&#171;interface&#187; CDOCommonView.Options (org.eclipse.emf.cdo.common)" alt="" coords="69,65,267,119"/>
-<area shape="rect" id="node3" href="CDOInvalidationPolicy.html" title="&#171;interface&#187; CDOInvalidationPolicy" alt="" coords="905,112,1055,152"/>
-<area shape="rect" id="node4" href="CDORevisionPrefetchingPolicy.html" title="&#171;interface&#187; CDORevisionPrefetchingPolicy" alt="" coords="881,175,1079,215"/>
-<area shape="rect" id="node5" href="CDOStaleReferencePolicy.html" title="&#171;interface&#187; CDOStaleReferencePolicy" alt="" coords="893,233,1067,273"/>
-<area shape="rect" id="node6" href="../transaction/CDOTransaction.Options.html" title="&#171;interface&#187; CDOTransaction.Options (org.eclipse.emf.cdo.transaction)" alt="" coords="875,293,1085,347"/>
+<area shape="rect" id="node3" href="CDOInvalidationPolicy.html" title="&#171;interface&#187; CDOInvalidationPolicy" alt="" coords="905,141,1055,181"/>
+<area shape="rect" id="node4" href="CDORevisionPrefetchingPolicy.html" title="&#171;interface&#187; CDORevisionPrefetchingPolicy" alt="" coords="881,204,1079,244"/>
+<area shape="rect" id="node5" href="CDOStaleReferencePolicy.html" title="&#171;interface&#187; CDOStaleReferencePolicy" alt="" coords="893,263,1067,303"/>
+<area shape="rect" id="node6" href="../transaction/CDOTransaction.Options.html" title="&#171;interface&#187; CDOTransaction.Options (org.eclipse.emf.cdo.transaction)" alt="" coords="875,322,1085,377"/>
<area shape="rect" id="node7" href="CDOView.html" title="&#171;interface&#187; CDOView" alt="" coords="125,139,211,179"/>
-<area shape="rect" id="node8" href="CDOView.Options.html" title="&#171;interface&#187; CDOView.Options" alt="" coords="550,227,677,267"/>
+<area shape="rect" id="node8" href="CDOView.Options.html" title="&#171;interface&#187; CDOView.Options" alt="" coords="550,256,677,296"/>
<area shape="rect" id="node9" href="CDOView.Options.CacheReferenceTypeEvent.html" title="&#171;interface&#187; CDOView.Options.CacheReferenceTypeEvent" alt="" coords="25,197,311,237"/>
<area shape="rect" id="node10" href="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="&#171;interface&#187; CDOView.Options.ChangeSubscriptionPoliciesEvent" alt="" coords="5,256,331,296"/>
-<area shape="rect" id="node11" href="CDOView.Options.InvalidationNotificationEvent.html" title="&#171;interface&#187; CDOView.Options.InvalidationNotificationEvent" alt="" coords="23,315,313,355"/>
-<area shape="rect" id="node12" href="CDOView.Options.InvalidationPolicyEvent.html" title="&#171;interface&#187; CDOView.Options.InvalidationPolicyEvent" alt="" coords="37,373,299,413"/>
-<area shape="rect" id="node13" href="CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="&#171;interface&#187; CDOView.Options.RevisionPrefetchingPolicyEvent" alt="" coords="12,432,324,472"/>
-<area shape="rect" id="node14" href="CDOView.Options.StaleReferencePolicyEvent.html" title="&#171;interface&#187; CDOView.Options.StaleReferencePolicyEvent" alt="" coords="25,491,311,531"/>
-<area shape="rect" id="node15" href="CDOView.Options.StrongReferencePolicyEvent.html" title="&#171;interface&#187; CDOView.Options.StrongReferencePolicyEvent" alt="" coords="21,549,315,589"/>
-<area shape="rect" id="node16" href="CDOViewAdaptersNotifiedEvent.html" title="&#171;interface&#187; CDOViewAdaptersNotifiedEvent" alt="" coords="877,367,1083,407"/>
-<area shape="rect" id="node17" title="&#171;enum&#187; ReferenceType (org.eclipse.net4j.util.ref)" alt="" coords="898,426,1062,481"/>
+<area shape="rect" id="node11" href="CDOView.Options.FeatureAnalyzerEvent.html" title="&#171;interface&#187; CDOView.Options.FeatureAnalyzerEvent" alt="" coords="39,315,297,355"/>
+<area shape="rect" id="node12" href="CDOView.Options.InvalidationNotificationEvent.html" title="&#171;interface&#187; CDOView.Options.InvalidationNotificationEvent" alt="" coords="23,373,313,413"/>
+<area shape="rect" id="node13" href="CDOView.Options.InvalidationPolicyEvent.html" title="&#171;interface&#187; CDOView.Options.InvalidationPolicyEvent" alt="" coords="37,432,299,472"/>
+<area shape="rect" id="node14" href="CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="&#171;interface&#187; CDOView.Options.RevisionPrefetchingPolicyEvent" alt="" coords="12,491,324,531"/>
+<area shape="rect" id="node15" href="CDOView.Options.StaleReferencePolicyEvent.html" title="&#171;interface&#187; CDOView.Options.StaleReferencePolicyEvent" alt="" coords="25,549,311,589"/>
+<area shape="rect" id="node16" href="CDOView.Options.StrongReferencePolicyEvent.html" title="&#171;interface&#187; CDOView.Options.StrongReferencePolicyEvent" alt="" coords="21,608,315,648"/>
+<area shape="rect" id="node17" href="CDOViewAdaptersNotifiedEvent.html" title="&#171;interface&#187; CDOViewAdaptersNotifiedEvent" alt="" coords="877,396,1083,436"/>
+<area shape="rect" id="node18" title="&#171;enum&#187; ReferenceType (org.eclipse.net4j.util.ref)" alt="" coords="898,455,1062,510"/>
</map>
<CENTER><IMG SRC="CDOView.Options.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -173,7 +174,7 @@ Encapsulates a set of notifying <A HREF="../../../../../org/eclipse/emf/cdo/view
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.DetachmenNotificationEvent</A></B></CODE>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.DetachmentNotificationEvent</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
@@ -185,7 +186,9 @@ Encapsulates a set of notifying <A HREF="../../../../../org/eclipse/emf/cdo/view
<TD><CODE><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.FeatureAnalyzerEvent</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
+ <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.html#setFeatureAnalyzer(org.eclipse.emf.cdo.view.CDOFeatureAnalyzer)"><CODE>feature analyzer</CODE></A> option has
+ changed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.png
index 3274cc345e..c200062e81 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/CDOView.Options.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.Options.DetachmenNotificationEvent.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.Options.DetachmentNotificationEvent.html
index 63bd8376b0..30ed0c61c0 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.Options.DetachmenNotificationEvent.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.Options.DetachmentNotificationEvent.html
@@ -4,7 +4,7 @@
<HEAD>
<TITLE>
-Uses of Interface org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent (CDO Model Repository Documentation)
+Uses of Interface org.eclipse.emf.cdo.view.CDOView.Options.DetachmentNotificationEvent (CDO Model Repository Documentation)
</TITLE>
<META NAME="date" CONTENT="">
@@ -16,7 +16,7 @@ Uses of Interface org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotification
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Uses of Interface org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent (CDO Model Repository Documentation)";
+ parent.document.title="Uses of Interface org.eclipse.emf.cdo.view.CDOView.Options.DetachmentNotificationEvent (CDO Model Repository Documentation)";
}
}
</SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
@@ -58,8 +58,8 @@ function windowTitle()
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../../../index.html?org/eclipse/emf/cdo/view/\class-useCDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+ <A HREF="../../../../../../index.html?org/eclipse/emf/cdo/view/\class-useCDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
@@ -81,9 +81,9 @@ function windowTitle()
<HR>
<CENTER>
<H2>
-<B>Uses of Interface<br>org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent</B></H2>
+<B>Uses of Interface<br>org.eclipse.emf.cdo.view.CDOView.Options.DetachmentNotificationEvent</B></H2>
</CENTER>
-No usage of org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent
+No usage of org.eclipse.emf.cdo.view.CDOView.Options.DetachmentNotificationEvent
<P>
<HR>
@@ -99,7 +99,7 @@ No usage of org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
@@ -117,8 +117,8 @@ No usage of org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../../../index.html?org/eclipse/emf/cdo/view/\class-useCDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+ <A HREF="../../../../../../index.html?org/eclipse/emf/cdo/view/\class-useCDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.html
index dba51f3fd5..036066d903 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/class-use/CDOView.html
@@ -111,7 +111,8 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/view/CDOView.ht
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.team"><B>org.eclipse.emf.cdo.team</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.transaction"><B>org.eclipse.emf.cdo.transaction</B></A></TD>
@@ -131,7 +132,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/view/CDOView.ht
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.internal.cdo"><B>org.eclipse.emf.internal.cdo</B></A></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-frame.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-frame.html
index 9bd739e854..41a980638e 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-frame.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-frame.html
@@ -50,7 +50,7 @@ Interfaces</FONT>&nbsp;
<BR>
<A HREF="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.ChangeSubscriptionPoliciesEvent</I></A>
<BR>
-<A HREF="CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.DetachmenNotificationEvent</I></A>
+<A HREF="CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.DetachmentNotificationEvent</I></A>
<BR>
<A HREF="CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view" target="classFrame"><I>CDOView.Options.FeatureAnalyzerEvent</I></A>
<BR>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-summary.html
index 9d06ce190c..6eaaa3c113 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-summary.html
@@ -179,13 +179,15 @@ Client concepts for dealing with views, view sets, queries, CDO objects and EMF
<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.html#addChangeSubscriptionPolicy(org.eclipse.emf.cdo.view.CDOAdapterPolicy)"><CODE>change subscription policies</CODE></A> option has changed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.DetachmenNotificationEvent</A></B></TD>
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.DetachmentNotificationEvent</A></B></TD>
<TD>An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
<A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.html#setDetachmentNotificationEnabled(boolean)"><CODE>detachment notification enabled</CODE></A> option has changed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.FeatureAnalyzerEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.FeatureAnalyzerEvent</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/options/IOptionsEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.options"><CODE>options event</CODE></A> fired from view <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.html#options()"><CODE>options</CODE></A> when the
+ <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.html#setFeatureAnalyzer(org.eclipse.emf.cdo.view.CDOFeatureAnalyzer)"><CODE>feature analyzer</CODE></A> option has
+ changed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.InvalidationNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view">CDOView.Options.InvalidationNotificationEvent</A></B></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-use.html
index 192c60c17f..6951ed8a1d 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/view/package-use.html
@@ -111,7 +111,8 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/view/package-summa
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.team"><B>org.eclipse.emf.cdo.team</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.transaction"><B>org.eclipse.emf.cdo.transaction</B></A></TD>
@@ -131,7 +132,7 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/view/package-summa
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.internal.cdo"><B>org.eclipse.emf.internal.cdo</B></A></TD>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html
index 5093969410..b48673f877 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html
@@ -104,8 +104,9 @@ Interface CDOWorkspace.DirtyStateChangedEvent</H2>
</DL>
<map id="APIVIZ" name="APIVIZ">
-<area shape="rect" id="node1" title="&#171;interface&#187; IEvent (org.eclipse.net4j.util.event)" alt="" coords="46,6,225,61"/>
-<area shape="rect" id="node2" href="CDOWorkspace.DirtyStateChangedEvent.html" title="&#171;interface&#187; CDOWorkspace.DirtyStateChangedEvent" alt="" coords="5,100,267,140"/>
+<area shape="rect" id="node1" title="&#171;interface&#187; IEvent (org.eclipse.net4j.util.event)" alt="" coords="5,6,184,61"/>
+<area shape="rect" id="node2" href="CDOWorkspace.DirtyStateChangedEvent.html" title="&#171;interface&#187; CDOWorkspace.DirtyStateChangedEvent" alt="" coords="52,117,313,157"/>
+<area shape="rect" id="node3" href="CDOWorkspace.html" title="&#171;interface&#187; CDOWorkspace" alt="" coords="214,13,329,53"/>
</map>
<CENTER><IMG SRC="CDOWorkspace.DirtyStateChangedEvent.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -113,10 +114,15 @@ Interface CDOWorkspace.DirtyStateChangedEvent</H2>
<P>
+An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/IEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired when the overall state of the <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> changes between <i>dirty</i> and <i>clean</i>.
+ fired.
+<P>
+
+<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
-</DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html#isDirty()"><CODE>CDOWorkspace.isDirty()</CODE></A></DL>
<HR>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.png
index 30fddc9f93..88bcd0ad90 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.html
index cdb21ace6d..38749d89fc 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.html
@@ -103,8 +103,9 @@ Interface CDOWorkspace</H2>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" title="&#171;interface&#187; INotifier (org.eclipse.net4j.util.event)" alt="" coords="5,6,184,61"/>
<area shape="rect" id="node2" title="&#171;interface&#187; Closeable (org.eclipse.net4j.util.collection)" alt="" coords="215,6,420,61"/>
-<area shape="rect" id="node3" href="CDOWorkspace.html" title="&#171;interface&#187; CDOWorkspace" alt="" coords="259,100,375,140"/>
-<area shape="rect" id="node4" href="../common/revision/CDORevisionProvider.html" title="&#171;interface&#187; CDORevisionProvider (org.eclipse.emf.cdo.common.revision)" alt="" coords="450,6,693,61"/>
+<area shape="rect" id="node3" href="CDOWorkspace.DirtyStateChangedEvent.html" title="&#171;interface&#187; CDOWorkspace.DirtyStateChangedEvent" alt="" coords="187,200,448,240"/>
+<area shape="rect" id="node4" href="CDOWorkspace.html" title="&#171;interface&#187; CDOWorkspace" alt="" coords="259,104,375,144"/>
+<area shape="rect" id="node5" href="../common/revision/CDORevisionProvider.html" title="&#171;interface&#187; CDORevisionProvider (org.eclipse.emf.cdo.common.revision)" alt="" coords="450,6,693,61"/>
</map>
<CENTER><IMG SRC="CDOWorkspace.png" USEMAP="#APIVIZ" BORDER="0"></CENTER>
@@ -139,7 +140,7 @@ Represents a local <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWork
<TD><CODE><B><A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html" title="interface in org.eclipse.emf.cdo.workspace">CDOWorkspace.DirtyStateChangedEvent</A></B></CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/IEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired when the overall state of the <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> changes between <i>dirty</i> and <i>clean</i>.</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.png b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.png
index b180fc3712..2467eabb86 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.png
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/CDOWorkspace.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspace.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspace.html
index f9bd786290..9d77dc5b8a 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspace.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspace.html
@@ -91,11 +91,12 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWo
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace.efs"><B>org.eclipse.emf.cdo.workspace.efs</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase.html
index c6f597755d..090a7bd38a 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase.html
@@ -91,7 +91,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWo
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase2.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase2.html
index 84ebc1f41d..213ba13121 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase2.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceBase2.html
@@ -91,7 +91,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWo
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceConfiguration.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceConfiguration.html
index d4757d0de8..06f71b523b 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceConfiguration.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/class-use/CDOWorkspaceConfiguration.html
@@ -91,7 +91,7 @@ Packages that use <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWo
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/CDOFS.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/CDOFS.html
index cef5ad1fbd..575d844760 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/CDOFS.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/CDOFS.html
@@ -110,6 +110,11 @@ Class CDOFS</H2>
<P>
+This class is the main entry point to the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>.
+<P>
+
+<P>
<HR>
<P>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/package-summary.html
index 707a153627..41353010bf 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/efs/package-summary.html
@@ -82,6 +82,11 @@ function windowTitle()
<H2>
Package org.eclipse.emf.cdo.workspace.efs
</H2>
+<A NAME="package_description"><!-- --></A>
+Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>
+
+<P>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="CDOFS.html" title="&#171;static&#187; CDOFS" alt="" coords="6,5,74,45"/>
@@ -96,12 +101,16 @@ Package org.eclipse.emf.cdo.workspace.efs
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/emf/cdo/workspace/efs/CDOFS.html" title="class in org.eclipse.emf.cdo.workspace.efs">CDOFS</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>This class is the main entry point to the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>.</TD>
</TR>
</TABLE>
&nbsp;
<P>
+<P>
+
+<P>
<DL>
</DL>
<HR>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-summary.html
index aa0ed86c07..b427409c92 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-summary.html
@@ -82,6 +82,10 @@ function windowTitle()
<H2>
Package org.eclipse.emf.cdo.workspace
</H2>
+<A NAME="package_description"><!-- --></A>
+Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>
+
+<P>
<map id="APIVIZ" name="APIVIZ">
<area shape="rect" id="node1" href="../common/revision/CDORevisionProvider.html" title="&#171;interface&#187; CDORevisionProvider (org.eclipse.emf.cdo.common.revision)" alt="" coords="6,370,250,425"/>
@@ -109,7 +113,7 @@ Package org.eclipse.emf.cdo.workspace
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.DirtyStateChangedEvent.html" title="interface in org.eclipse.emf.cdo.workspace">CDOWorkspace.DirtyStateChangedEvent</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/net4j/util/event/IEvent.html?is-external=true" title="class or interface in org.eclipse.net4j.util.event"><CODE>event</CODE></A> fired when the overall state of the <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspace</CODE></A> changes between <i>dirty</i> and <i>clean</i>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspaceBase.html" title="interface in org.eclipse.emf.cdo.workspace">CDOWorkspaceBase</A></B></TD>
@@ -144,6 +148,9 @@ Package org.eclipse.emf.cdo.workspace
&nbsp;
<P>
+<P>
+
+<P>
<DL>
</DL>
<HR>
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-use.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-use.html
index c30fc9dbcb..7fa2b421b1 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-use.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/org/eclipse/emf/cdo/workspace/package-use.html
@@ -91,11 +91,12 @@ Packages that use <A HREF="../../../../../org/eclipse/emf/cdo/workspace/package-
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace"><B>org.eclipse.emf.cdo.workspace</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.emf.cdo.workspace.efs"><B>org.eclipse.emf.cdo.workspace.efs</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
+<TD>Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="../../../../../org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
diff --git a/plugins/org.eclipse.emf.cdo.doc/javadoc/overview-summary.html b/plugins/org.eclipse.emf.cdo.doc/javadoc/overview-summary.html
index 613081834c..65c455186f 100644
--- a/plugins/org.eclipse.emf.cdo.doc/javadoc/overview-summary.html
+++ b/plugins/org.eclipse.emf.cdo.doc/javadoc/overview-summary.html
@@ -207,7 +207,8 @@ CDO is both a development-time model repository and a run-time persistence frame
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="20%"><B><A HREF="org/eclipse/emf/cdo/team/package-summary.html">org.eclipse.emf.cdo.team</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Concepts to represent and manage <CODE>projects</CODE> that are mapped
+ to CDO repositories by the CDO <CODE>team provider</CODE></TD>
</TR>
</TABLE>
@@ -250,7 +251,7 @@ CDO is both a development-time model repository and a run-time persistence frame
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="20%"><B><A HREF="org/eclipse/emf/cdo/workspace/package-summary.html">org.eclipse.emf.cdo.workspace</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Concepts to checkout, open and further operate CDO <A HREF="org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A></TD>
</TR>
</TABLE>
@@ -263,7 +264,8 @@ CDO is both a development-time model repository and a run-time persistence frame
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="20%"><B><A HREF="org/eclipse/emf/cdo/workspace/efs/package-summary.html">org.eclipse.emf.cdo.workspace.efs</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Concepts to deal with the <CODE>Eclipse File System (EFS)</CODE> implementation
+ for CDO <A HREF="org/eclipse/emf/cdo/workspace/CDOWorkspace.html" title="interface in org.eclipse.emf.cdo.workspace"><CODE>workspaces</CODE></A></TD>
</TR>
</TABLE>
diff --git a/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/programmers/server/Architecture.java b/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/programmers/server/Architecture.java
index 3b297ec944..8706780c7e 100644
--- a/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/programmers/server/Architecture.java
+++ b/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/programmers/server/Architecture.java
@@ -1,182 +1,181 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.doc.programmers.server;
-
-import org.eclipse.emf.cdo.CDOLock;
-import org.eclipse.emf.cdo.common.branch.CDOBranch;
-import org.eclipse.emf.cdo.common.branch.CDOBranchManager;
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
-import org.eclipse.emf.cdo.common.model.CDOPackageRegistry;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
-import org.eclipse.emf.cdo.common.revision.CDORevisionCache;
-import org.eclipse.emf.cdo.common.revision.CDORevisionManager;
-import org.eclipse.emf.cdo.doc.reference.StoreFeatures;
-import org.eclipse.emf.cdo.server.ILockingManager;
-import org.eclipse.emf.cdo.server.IQueryHandler;
-import org.eclipse.emf.cdo.server.IQueryHandlerProvider;
-import org.eclipse.emf.cdo.server.IRepository;
-import org.eclipse.emf.cdo.server.IRepository.ReadAccessHandler;
-import org.eclipse.emf.cdo.server.IRepository.WriteAccessHandler;
-import org.eclipse.emf.cdo.server.ISessionManager;
-import org.eclipse.emf.cdo.server.IStore;
-import org.eclipse.emf.cdo.server.IStoreAccessor;
-import org.eclipse.emf.cdo.server.IStoreChunkReader;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.spi.server.ISessionProtocol;
-
-import org.eclipse.net4j.buffer.IBuffer;
-import org.eclipse.net4j.connector.IConnector;
-import org.eclipse.net4j.http.common.IHTTPConnector;
-import org.eclipse.net4j.jvm.IJVMConnector;
-import org.eclipse.net4j.signal.ISignalProtocol;
-import org.eclipse.net4j.tcp.ITCPConnector;
-import org.eclipse.net4j.tcp.ssl.SSLUtil;
-import org.eclipse.net4j.util.container.IPluginContainer;
-import org.eclipse.net4j.util.factory.IFactory;
-import org.eclipse.net4j.util.om.OMPlatform;
-import org.eclipse.net4j.util.om.log.OMLogger;
-import org.eclipse.net4j.util.om.monitor.OMMonitor;
-import org.eclipse.net4j.util.om.pref.OMPreference;
-import org.eclipse.net4j.util.om.trace.OMTracer;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-/**
- * Understanding the Architecture of a Repository
- * <p>
- * The main building block of a CDO repository is split into two layers, the generic repository layer that client
- * applications interact with and the database integration layer that providers can hook into to integrate their data
- * storage solutions with CDO. A number of such integrations already ship with CDO, making it possible to connect a
- * repository to all sorts of JDBC databases, Hibernate, Objectivity/DB, MongoDB or DB4O.
- * <p>
- * While technically a CDO repository depends on EMF this dependency is not of equal importance as it is in a CDO
- * application. In particular the generated application models are not required to be deployed to the server because a
- * CDO repository accesses models reflectively and the model objects are not implemented as {@link EObject EObjects} on
- * the server.
- * <p>
- * The following diagram illustrates the major building blocks of a CDO repository: {@img repository-architecture.png}
- *
- * @author Eike Stepper
- */
-public class Architecture
-{
- /**
- * OSGi
- * <p>
- * All components of CDO are implemented as <a href="http://www.osgi.org">OSGi</a> bundles. The core components of
- * both clients and servers do not require OSGi to actually run to be functional, they can perfectly be operated
- * stand-alone. If OSGi is running the setup and configuration of some CDO facilities is a little simpler than in
- * stand-alone mode because the needed {@link IFactory factories} get automatically registered with the central
- * {@link IPluginContainer wiring container}.
- * <p>
- * CDO utilizes an {@link OMPlatform operations and maintenance} framework to abstract common platform services such
- * as {@link OMLogger logging}, {@link OMTracer tracing}, {@link OMMonitor monitoring} and {@link OMPreference
- * configuration}. Without the need to depend on additional external libraries these services integrate seamlessly
- * with OSGi, if available at runtime, or emulate similar functionality if running stand-alone.
- */
- public class OSGi
- {
- }
-
- /**
- * CDO Server Core
- * <p>
- * The core of a CDO server consists of one or more {@link IRepository repositories} each of which, in turn, consists
- * of several generic (network and storage independent) <b>components</b>, such as:
- * <p>
- * <ul>
- * <li>a {@link CDORevision revision} {@link CDORevisionManager manager} and {@link CDORevisionCache cache},
- * <li>a {@link CDOBranch branch} {@link CDOBranchManager manager},
- * <li>a {@link EPackage package} {@link CDOPackageRegistry registry},
- * <li>a {@link CDOLock lock} {@link ILockingManager manager},
- * <li>a {@link CDOSession session} {@link ISessionManager manager},
- * <li>a {@link CDOCommitInfo commit info} {@link CDOCommitInfoManager manager},
- * <li>a {@link IQueryHandler query handler} {@link IQueryHandlerProvider provider}.
- * </ul>
- * <p>
- * In addition the following types of <b>handlers</b> can be hooked up with a repository:
- * <p>
- * <ul>
- * <li>{@link ReadAccessHandler Read access} handlers,
- * <li>{@link WriteAccessHandler Write access} handlers,
- * <li>{@link CDOCommitInfoHandler Commit info} handlers.
- * </ul>
- * <p>
- * All <b>persistent aspects</b> (the storage/retrieval of data in/from a database system) are fully abstracted
- * through the service provider interfaces (SPI) {@link IStore}, {@link IStoreAccessor} and {@link IStoreChunkReader}.
- * Concrete implementations are fully separated and can be plugged into the core as described in {@link Store}.
- * <p>
- * All <b>communication aspects</b> (the sending/receiving of signals to/from a network system) are fully abstracted
- * through the service provider interface (SPI) {@link ISessionProtocol}. Concrete implementations are fully separated
- * and can be plugged into the core as described in {@link Protocol}.
- */
- public class Core
- {
- }
-
- /**
- * CDO Store
- * <p>
- * A concrete storage adapter, an {@link IStore} implementation, operates on top of the generic {@link Core server
- * core}. A number of such stores already ship with CDO, making it possible to connect a repository to all sorts of
- * JDBC databases, Hibernate, Objectivity/DB, MongoDB or DB4O.
- *
- * @see StoreFeatures
- */
- public class Store
- {
- }
-
- /**
- * Protocol
- * <p>
- * A concrete communications adapter, an {@link ISessionProtocol} implementation, operates on top of the generic
- * {@link Core server core}. The only session protocol implementation that currently ships with CDO is based on
- * {@link Net4j}.
- */
- public class Protocol
- {
- }
-
- /**
- * OCL
- */
- public class OCL
- {
- }
-
- /**
- * Net4j Core
- * <p>
- * The <i>Net4j Signalling Platform</i> is an extensible client/server communications framework. Net4j eases the
- * development of fast and maintainable application {@link ISignalProtocol protocols} that are independent of the
- * physical {@link IConnector transport} medium. Transport protocols are pluggable and Net4j ships with support for
- * {@link ITCPConnector TCP}, {@link SSLUtil SSL}, {@link IHTTPConnector HTTP} and {@link IJVMConnector JVM}
- * (in-process) transport. The core of Net4j is a fast, asynchronous and non-blocking {@link IBuffer buffer}
- * multiplexing kernel, based on {@link OSGi} but also executable stand-alone.
- *
- * @see Transport
- * @see Protocol
- */
- public class Net4j
- {
- }
-
- /**
- * Transport
- */
- public class Transport
- {
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.doc.programmers.server;
+
+import org.eclipse.emf.cdo.CDOLock;
+import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.branch.CDOBranchManager;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
+import org.eclipse.emf.cdo.common.model.CDOPackageRegistry;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionCache;
+import org.eclipse.emf.cdo.common.revision.CDORevisionManager;
+import org.eclipse.emf.cdo.doc.reference.StoreFeatures;
+import org.eclipse.emf.cdo.server.ILockingManager;
+import org.eclipse.emf.cdo.server.IQueryHandler;
+import org.eclipse.emf.cdo.server.IQueryHandlerProvider;
+import org.eclipse.emf.cdo.server.IRepository;
+import org.eclipse.emf.cdo.server.IRepository.ReadAccessHandler;
+import org.eclipse.emf.cdo.server.IRepository.WriteAccessHandler;
+import org.eclipse.emf.cdo.server.ISessionManager;
+import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.server.IStoreAccessor;
+import org.eclipse.emf.cdo.server.IStoreChunkReader;
+import org.eclipse.emf.cdo.session.CDOSession;
+
+import org.eclipse.net4j.buffer.IBuffer;
+import org.eclipse.net4j.connector.IConnector;
+import org.eclipse.net4j.http.common.IHTTPConnector;
+import org.eclipse.net4j.jvm.IJVMConnector;
+import org.eclipse.net4j.signal.ISignalProtocol;
+import org.eclipse.net4j.tcp.ITCPConnector;
+import org.eclipse.net4j.tcp.ssl.SSLUtil;
+import org.eclipse.net4j.util.container.IPluginContainer;
+import org.eclipse.net4j.util.factory.IFactory;
+import org.eclipse.net4j.util.om.OMPlatform;
+import org.eclipse.net4j.util.om.log.OMLogger;
+import org.eclipse.net4j.util.om.monitor.OMMonitor;
+import org.eclipse.net4j.util.om.pref.OMPreference;
+import org.eclipse.net4j.util.om.trace.OMTracer;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * Understanding the Architecture of a Repository
+ * <p>
+ * The main building block of a CDO repository is split into two layers, the generic repository layer that client
+ * applications interact with and the database integration layer that providers can hook into to integrate their data
+ * storage solutions with CDO. A number of such integrations already ship with CDO, making it possible to connect a
+ * repository to all sorts of JDBC databases, Hibernate, Objectivity/DB, MongoDB or DB4O.
+ * <p>
+ * While technically a CDO repository depends on EMF this dependency is not of equal importance as it is in a CDO
+ * application. In particular the generated application models are not required to be deployed to the server because a
+ * CDO repository accesses models reflectively and the model objects are not implemented as {@link EObject EObjects} on
+ * the server.
+ * <p>
+ * The following diagram illustrates the major building blocks of a CDO repository: {@img repository-architecture.png}
+ *
+ * @author Eike Stepper
+ */
+public class Architecture
+{
+ /**
+ * OSGi
+ * <p>
+ * All components of CDO are implemented as <a href="http://www.osgi.org">OSGi</a> bundles. The core components of
+ * both clients and servers do not require OSGi to actually run to be functional, they can perfectly be operated
+ * stand-alone. If OSGi is running the setup and configuration of some CDO facilities is a little simpler than in
+ * stand-alone mode because the needed {@link IFactory factories} get automatically registered with the central
+ * {@link IPluginContainer wiring container}.
+ * <p>
+ * CDO utilizes an {@link OMPlatform operations and maintenance} framework to abstract common platform services such
+ * as {@link OMLogger logging}, {@link OMTracer tracing}, {@link OMMonitor monitoring} and {@link OMPreference
+ * configuration}. Without the need to depend on additional external libraries these services integrate seamlessly
+ * with OSGi, if available at runtime, or emulate similar functionality if running stand-alone.
+ */
+ public class OSGi
+ {
+ }
+
+ /**
+ * CDO Server Core
+ * <p>
+ * The core of a CDO server consists of one or more {@link IRepository repositories} each of which, in turn, consists
+ * of several generic (network and storage independent) <b>components</b>, such as:
+ * <p>
+ * <ul>
+ * <li>a {@link CDORevision revision} {@link CDORevisionManager manager} and {@link CDORevisionCache cache},
+ * <li>a {@link CDOBranch branch} {@link CDOBranchManager manager},
+ * <li>a {@link EPackage package} {@link CDOPackageRegistry registry},
+ * <li>a {@link CDOLock lock} {@link ILockingManager manager},
+ * <li>a {@link CDOSession session} {@link ISessionManager manager},
+ * <li>a {@link CDOCommitInfo commit info} {@link CDOCommitInfoManager manager},
+ * <li>a {@link IQueryHandler query handler} {@link IQueryHandlerProvider provider}.
+ * </ul>
+ * <p>
+ * In addition the following types of <b>handlers</b> can be hooked up with a repository:
+ * <p>
+ * <ul>
+ * <li>{@link ReadAccessHandler Read access} handlers,
+ * <li>{@link WriteAccessHandler Write access} handlers,
+ * <li>{@link CDOCommitInfoHandler Commit info} handlers.
+ * </ul>
+ * <p>
+ * All <b>persistent aspects</b> (the storage/retrieval of data in/from a database system) are fully abstracted
+ * through the service provider interfaces (SPI) {@link IStore}, {@link IStoreAccessor} and {@link IStoreChunkReader}.
+ * Concrete implementations are fully separated and can be plugged into the core as described in {@link Store}.
+ * <p>
+ * All <b>communication aspects</b> (the sending/receiving of signals to/from a network system) are fully abstracted
+ * through the service provider interface (SPI) ISessionProtocol. Concrete implementations are fully separated
+ * and can be plugged into the core as described in {@link Protocol}.
+ */
+ public class Core
+ {
+ }
+
+ /**
+ * CDO Store
+ * <p>
+ * A concrete storage adapter, an {@link IStore} implementation, operates on top of the generic {@link Core server
+ * core}. A number of such stores already ship with CDO, making it possible to connect a repository to all sorts of
+ * JDBC databases, Hibernate, Objectivity/DB, MongoDB or DB4O.
+ *
+ * @see StoreFeatures
+ */
+ public class Store
+ {
+ }
+
+ /**
+ * Protocol
+ * <p>
+ * A concrete communications adapter, an ISessionProtocol implementation, operates on top of the generic
+ * {@link Core server core}. The only session protocol implementation that currently ships with CDO is based on
+ * {@link Net4j}.
+ */
+ public class Protocol
+ {
+ }
+
+ /**
+ * OCL
+ */
+ public class OCL
+ {
+ }
+
+ /**
+ * Net4j Core
+ * <p>
+ * The <i>Net4j Signalling Platform</i> is an extensible client/server communications framework. Net4j eases the
+ * development of fast and maintainable application {@link ISignalProtocol protocols} that are independent of the
+ * physical {@link IConnector transport} medium. Transport protocols are pluggable and Net4j ships with support for
+ * {@link ITCPConnector TCP}, {@link SSLUtil SSL}, {@link IHTTPConnector HTTP} and {@link IJVMConnector JVM}
+ * (in-process) transport. The core of Net4j is a fast, asynchronous and non-blocking {@link IBuffer buffer}
+ * multiplexing kernel, based on {@link OSGi} but also executable stand-alone.
+ *
+ * @see Transport
+ * @see Protocol
+ */
+ public class Net4j
+ {
+ }
+
+ /**
+ * Transport
+ */
+ public class Transport
+ {
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.emf.cdo.doc.warnings b/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.emf.cdo.doc.warnings
index b88b4d5e36..5f23269a3e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.emf.cdo.doc.warnings
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/debug/org.eclipse.emf.cdo.doc.warnings
@@ -1,13 +1,4 @@
-Class description missing: org.eclipse.emf.cdo.server.db.CDODBUtil.class(CDODBUtil.java:41)
-Class description missing: org.eclipse.emf.cdo.server.db.IDBStore$Props.class(IDBStore.java:66)
-Class description missing: org.eclipse.emf.cdo.server.db.IDBStore.class(IDBStore.java:30)
-Class description missing: org.eclipse.emf.cdo.server.db.IDBStoreAccessor.class(IDBStoreAccessor.java:22)
-Class description missing: org.eclipse.emf.cdo.server.db.IDBStoreChunkReader.class(IDBStoreChunkReader.java:20)
-Class description missing: org.eclipse.emf.cdo.server.db.IIDHandler.class(IIDHandler.java:37)
-Class description missing: org.eclipse.emf.cdo.server.db.IMetaDataManager.class(IMetaDataManager.java:36)
-Class description missing: org.eclipse.emf.cdo.server.db.IPreparedStatementCache.class(IPreparedStatementCache.java:23)
-Class description missing: org.eclipse.emf.cdo.server.db4o.IDB4OIdentifiableObject.class(IDB4OIdentifiableObject.java:18)
-Class description missing: org.eclipse.emf.cdo.server.db4o.IDB4OStore.class(IDB4OStore.java:21)
+Class description missing: org.eclipse.emf.cdo.server.db.IDBStore$Props.class(IDBStore.java:68)
Class description missing: org.eclipse.emf.cdo.server.hibernate.CDOHibernateUtil.class(CDOHibernateUtil.java:21)
Class description missing: org.eclipse.emf.cdo.server.hibernate.IHibernateMappingProvider$Factory.class(IHibernateMappingProvider.java:38)
Class description missing: org.eclipse.emf.cdo.server.hibernate.IHibernateStore.class(IHibernateStore.java:27)
@@ -37,16 +28,5 @@ Class description missing: org.eclipse.emf.cdo.server.ocl.CDOExtentMap.class(CDO
Class description missing: org.eclipse.emf.cdo.server.ocl.OCLExtentCreator.class(OCLExtentCreator.java:22)
Class description missing: org.eclipse.emf.cdo.server.ocl.OCLQueryHandler$Factory.class(OCLQueryHandler.java:369)
Class description missing: org.eclipse.emf.cdo.server.ocl.OCLQueryHandler.class(OCLQueryHandler.java:70)
-Class description missing: org.eclipse.emf.cdo.team.IRepositoryManager.class(IRepositoryManager.java:20)
-Class description missing: org.eclipse.emf.cdo.team.IRepositoryProject.class(IRepositoryProject.java:21)
-Class description missing: org.eclipse.emf.cdo.transaction.CDOPostEventTransactionHandler$Default.class(CDOPostEventTransactionHandler.java:97)
-Class description missing: org.eclipse.emf.cdo.transaction.CDOPostEventTransactionHandler.class(CDOPostEventTransactionHandler.java:28)
-Class description missing: org.eclipse.emf.cdo.util.CDOBalancedTree.class(CDOBalancedTree.java:30)
-Class description missing: org.eclipse.emf.cdo.view.CDOView$Options$FeatureAnalyzerEvent.class(CDOView.java:800)
-Class description missing: org.eclipse.emf.cdo.workspace.CDOWorkspace$DirtyStateChangedEvent.class(CDOWorkspace.java:81)
-Class description missing: org.eclipse.emf.cdo.workspace.efs.CDOFS.class(CDOFS.java:55)
Class description missing: org.eclipse.emf.internal.cdo.CDOObjectImpl$CDOStoreEcoreEMap.class(CDOObjectImpl.java:1306)
Class description missing: org.eclipse.emf.internal.cdo.CDOObjectImpl$CDOStoreUnorderedEList.class(CDOObjectImpl.java:1435)
-Package description missing: org.eclipse.emf.cdo.team
-Package description missing: org.eclipse.emf.cdo.workspace
-Package description missing: org.eclipse.emf.cdo.workspace.efs
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/CDODBUtil.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/CDODBUtil.java
index bcc1f9a0dd..7d123c1e86 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/CDODBUtil.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/CDODBUtil.java
@@ -1,207 +1,209 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Stefan Winkler - 271444: [DB] Multiple refactorings
- * Stefan Winkler - 249610: [DB] Support external references (Implementation)
- */
-package org.eclipse.emf.cdo.server.db;
-
-import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
-import org.eclipse.emf.cdo.server.internal.db.DBBrowserPage;
-import org.eclipse.emf.cdo.server.internal.db.DBStore;
-import org.eclipse.emf.cdo.server.internal.db.SmartPreparedStatementCache;
-import org.eclipse.emf.cdo.server.internal.db.bundle.OM;
-import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalAuditMappingStrategy;
-import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalAuditMappingStrategyWithRanges;
-import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalBranchingMappingStrategy;
-import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalBranchingMappingStrategyWithRanges;
-import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalMappingStrategy;
-import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalNonAuditMappingStrategy;
-
-import org.eclipse.net4j.db.IDBAdapter;
-import org.eclipse.net4j.db.IDBConnectionProvider;
-import org.eclipse.net4j.util.ObjectUtil;
-import org.eclipse.net4j.util.WrappedException;
-import org.eclipse.net4j.util.container.IManagedContainer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * @author Eike Stepper
- */
-public final class CDODBUtil
-{
- /**
- * @since 2.0
- */
- public static final int DEFAULT_STATEMENT_CACHE_CAPACITY = 200;
-
- /**
- * @since 2.0
- */
- public static final String EXT_POINT_MAPPING_STRATEGIES = "mappingStrategies"; //$NON-NLS-1$
-
- /**
- * @since 4.1
- */
- public static final String PROP_WITH_RANGES = "withRanges";
-
- /**
- * @since 4.1
- */
- public static final String PROP_COPY_ON_BRANCH = "copyOnBranch";
-
- /**
- * @since 4.1
- */
- public static final String PROP_ZEROBASED_INDEX = "forceZeroBasedIndex";
-
- private CDODBUtil()
- {
- }
-
- /**
- * @since 4.0
- */
- public static void prepareContainer(IManagedContainer container)
- {
- container.registerFactory(new DBBrowserPage.Factory());
- }
-
- /**
- * @since 2.0
- */
- public static IDBStore createStore(IMappingStrategy mappingStrategy, IDBAdapter dbAdapter,
- IDBConnectionProvider dbConnectionProvider)
- {
- DBStore store = new DBStore();
- store.setMappingStrategy(mappingStrategy);
- store.setDBAdapter(dbAdapter);
- store.setDbConnectionProvider(dbConnectionProvider);
- return store;
- }
-
- /**
- * @since 2.0
- */
- public static IMappingStrategy createHorizontalMappingStrategy(boolean auditing)
- {
- return createHorizontalMappingStrategy(auditing, false, false);
- }
-
- /**
- * @since 3.0
- */
- public static IMappingStrategy createHorizontalMappingStrategy(boolean auditing, boolean branching)
- {
- return createHorizontalMappingStrategy(auditing, branching, false);
- }
-
- /**
- * @since 4.1
- */
- public static IMappingStrategy createHorizontalMappingStrategy(boolean auditing, boolean branching, boolean withRanges)
- {
- if (branching)
- {
- if (auditing)
- {
- if (withRanges)
- {
- return new HorizontalBranchingMappingStrategyWithRanges();
- }
-
- return new HorizontalBranchingMappingStrategy();
- }
-
- throw new IllegalArgumentException("Misconfiguration: Branching requires Auditing!");
- }
-
- if (auditing)
- {
- if (withRanges)
- {
- return new HorizontalAuditMappingStrategyWithRanges();
- }
-
- return new HorizontalAuditMappingStrategy();
- }
-
- return new HorizontalNonAuditMappingStrategy();
- }
-
- /**
- * Creates a horizontal {@link IMappingStrategy mapping strategy} that supports all valid combinations of auditing and
- * branching.
- *
- * @since 4.1
- */
- public static IMappingStrategy createHorizontalMappingStrategy()
- {
- return new HorizontalMappingStrategy();
- }
-
- /**
- * Can only be used when Eclipse is running. In standalone scenarios create the mapping strategy instance by directly
- * calling the constructor of the mapping strategy class.
- *
- * @see #createHorizontalMappingStrategy(boolean)
- * @see #createHorizontalMappingStrategy(boolean, boolean)
- * @since 2.0
- */
- public static IMappingStrategy createMappingStrategy(String type)
- {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] elements = registry.getConfigurationElementsFor(OM.BUNDLE_ID, EXT_POINT_MAPPING_STRATEGIES);
- for (final IConfigurationElement element : elements)
- {
- if ("mappingStrategy".equals(element.getName())) //$NON-NLS-1$
- {
- String typeAttr = element.getAttribute("type"); //$NON-NLS-1$
- if (ObjectUtil.equals(typeAttr, type))
- {
- try
- {
- return (IMappingStrategy)element.createExecutableExtension("class"); //$NON-NLS-1$
- }
- catch (CoreException ex)
- {
- throw WrappedException.wrap(ex);
- }
- }
- }
- }
-
- return null;
- }
-
- /**
- * Creates a prepared statement cache with the {@link CDODBUtil#DEFAULT_STATEMENT_CACHE_CAPACITY default capacity}.
- *
- * @since 2.0
- * @see CDODBUtil#createStatementCache(int)
- */
- public static IPreparedStatementCache createStatementCache()
- {
- return createStatementCache(DEFAULT_STATEMENT_CACHE_CAPACITY);
- }
-
- /**
- * Creates a prepared statement cache with the given capacity.
- *
- * @since 2.0
- */
- public static IPreparedStatementCache createStatementCache(int capacity)
- {
- return new SmartPreparedStatementCache(capacity);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Stefan Winkler - 271444: [DB] Multiple refactorings
+ * Stefan Winkler - 249610: [DB] Support external references (Implementation)
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
+import org.eclipse.emf.cdo.server.internal.db.DBBrowserPage;
+import org.eclipse.emf.cdo.server.internal.db.DBStore;
+import org.eclipse.emf.cdo.server.internal.db.SmartPreparedStatementCache;
+import org.eclipse.emf.cdo.server.internal.db.bundle.OM;
+import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalAuditMappingStrategy;
+import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalAuditMappingStrategyWithRanges;
+import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalBranchingMappingStrategy;
+import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalBranchingMappingStrategyWithRanges;
+import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalMappingStrategy;
+import org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalNonAuditMappingStrategy;
+
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.IDBConnectionProvider;
+import org.eclipse.net4j.util.ObjectUtil;
+import org.eclipse.net4j.util.WrappedException;
+import org.eclipse.net4j.util.container.IManagedContainer;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+/**
+ * Various static methods that may help in setting up and dealing with {@link IDBStore DB stores}.
+ *
+ * @author Eike Stepper
+ */
+public final class CDODBUtil
+{
+ /**
+ * @since 2.0
+ */
+ public static final int DEFAULT_STATEMENT_CACHE_CAPACITY = 200;
+
+ /**
+ * @since 2.0
+ */
+ public static final String EXT_POINT_MAPPING_STRATEGIES = "mappingStrategies"; //$NON-NLS-1$
+
+ /**
+ * @since 4.1
+ */
+ public static final String PROP_WITH_RANGES = "withRanges";
+
+ /**
+ * @since 4.1
+ */
+ public static final String PROP_COPY_ON_BRANCH = "copyOnBranch";
+
+ /**
+ * @since 4.1
+ */
+ public static final String PROP_ZEROBASED_INDEX = "forceZeroBasedIndex";
+
+ private CDODBUtil()
+ {
+ }
+
+ /**
+ * @since 4.0
+ */
+ public static void prepareContainer(IManagedContainer container)
+ {
+ container.registerFactory(new DBBrowserPage.Factory());
+ }
+
+ /**
+ * @since 2.0
+ */
+ public static IDBStore createStore(IMappingStrategy mappingStrategy, IDBAdapter dbAdapter,
+ IDBConnectionProvider dbConnectionProvider)
+ {
+ DBStore store = new DBStore();
+ store.setMappingStrategy(mappingStrategy);
+ store.setDBAdapter(dbAdapter);
+ store.setDbConnectionProvider(dbConnectionProvider);
+ return store;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public static IMappingStrategy createHorizontalMappingStrategy(boolean auditing)
+ {
+ return createHorizontalMappingStrategy(auditing, false, false);
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static IMappingStrategy createHorizontalMappingStrategy(boolean auditing, boolean branching)
+ {
+ return createHorizontalMappingStrategy(auditing, branching, false);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public static IMappingStrategy createHorizontalMappingStrategy(boolean auditing, boolean branching, boolean withRanges)
+ {
+ if (branching)
+ {
+ if (auditing)
+ {
+ if (withRanges)
+ {
+ return new HorizontalBranchingMappingStrategyWithRanges();
+ }
+
+ return new HorizontalBranchingMappingStrategy();
+ }
+
+ throw new IllegalArgumentException("Misconfiguration: Branching requires Auditing!");
+ }
+
+ if (auditing)
+ {
+ if (withRanges)
+ {
+ return new HorizontalAuditMappingStrategyWithRanges();
+ }
+
+ return new HorizontalAuditMappingStrategy();
+ }
+
+ return new HorizontalNonAuditMappingStrategy();
+ }
+
+ /**
+ * Creates a horizontal {@link IMappingStrategy mapping strategy} that supports all valid combinations of auditing and
+ * branching.
+ *
+ * @since 4.1
+ */
+ public static IMappingStrategy createHorizontalMappingStrategy()
+ {
+ return new HorizontalMappingStrategy();
+ }
+
+ /**
+ * Can only be used when Eclipse is running. In standalone scenarios create the mapping strategy instance by directly
+ * calling the constructor of the mapping strategy class.
+ *
+ * @see #createHorizontalMappingStrategy(boolean)
+ * @see #createHorizontalMappingStrategy(boolean, boolean)
+ * @since 2.0
+ */
+ public static IMappingStrategy createMappingStrategy(String type)
+ {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] elements = registry.getConfigurationElementsFor(OM.BUNDLE_ID, EXT_POINT_MAPPING_STRATEGIES);
+ for (final IConfigurationElement element : elements)
+ {
+ if ("mappingStrategy".equals(element.getName())) //$NON-NLS-1$
+ {
+ String typeAttr = element.getAttribute("type"); //$NON-NLS-1$
+ if (ObjectUtil.equals(typeAttr, type))
+ {
+ try
+ {
+ return (IMappingStrategy)element.createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch (CoreException ex)
+ {
+ throw WrappedException.wrap(ex);
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Creates a prepared statement cache with the {@link CDODBUtil#DEFAULT_STATEMENT_CACHE_CAPACITY default capacity}.
+ *
+ * @since 2.0
+ * @see CDODBUtil#createStatementCache(int)
+ */
+ public static IPreparedStatementCache createStatementCache()
+ {
+ return createStatementCache(DEFAULT_STATEMENT_CACHE_CAPACITY);
+ }
+
+ /**
+ * Creates a prepared statement cache with the given capacity.
+ *
+ * @since 2.0
+ */
+ public static IPreparedStatementCache createStatementCache(int capacity)
+ {
+ return new SmartPreparedStatementCache(capacity);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStore.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStore.java
index 11bd0662df..5e2fbf8d99 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStore.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStore.java
@@ -1,70 +1,72 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Stefan Winkler - 271444: [DB] Multiple refactorings
- * Stefan Winkler - 249610: [DB] Support external references (Implementation)
- */
-package org.eclipse.emf.cdo.server.db;
-
-import org.eclipse.emf.cdo.server.ISession;
-import org.eclipse.emf.cdo.server.IStore;
-import org.eclipse.emf.cdo.server.IStore.CanHandleClientAssignedIDs;
-import org.eclipse.emf.cdo.server.ITransaction;
-import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
-
-import org.eclipse.net4j.db.IDBAdapter;
-import org.eclipse.net4j.db.IDBConnectionProvider;
-import org.eclipse.net4j.db.ddl.IDBSchema;
-
-/**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IDBStore extends IStore, IDBConnectionProvider, CanHandleClientAssignedIDs
-{
- /**
- * @since 2.0
- */
- public IMappingStrategy getMappingStrategy();
-
- /**
- * @since 4.0
- */
- public IIDHandler getIDHandler();
-
- public IDBAdapter getDBAdapter();
-
- public IDBSchema getDBSchema();
-
- /**
- * Get the meta data manager associated with this DBStore.
- *
- * @since 2.0
- */
- public IMetaDataManager getMetaDataManager();
-
- /**
- * @since 2.0
- */
- public IDBStoreAccessor getReader(ISession session);
-
- /**
- * @since 2.0
- */
- public IDBStoreAccessor getWriter(ITransaction transaction);
-
- /**
- * @since 4.0
- */
- public interface Props
- {
- public static final String CONNECTION_KEEPALIVE_PERIOD = "connectionKeepAlivePeriod"; //$NON-NLS-1$
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Stefan Winkler - 271444: [DB] Multiple refactorings
+ * Stefan Winkler - 249610: [DB] Support external references (Implementation)
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import org.eclipse.emf.cdo.server.ISession;
+import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.server.IStore.CanHandleClientAssignedIDs;
+import org.eclipse.emf.cdo.server.ITransaction;
+import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
+
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.IDBConnectionProvider;
+import org.eclipse.net4j.db.ddl.IDBSchema;
+
+/**
+ * The main entry point to the API of CDO's proprietary object/relational mapper.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IDBStore extends IStore, IDBConnectionProvider, CanHandleClientAssignedIDs
+{
+ /**
+ * @since 2.0
+ */
+ public IMappingStrategy getMappingStrategy();
+
+ /**
+ * @since 4.0
+ */
+ public IIDHandler getIDHandler();
+
+ public IDBAdapter getDBAdapter();
+
+ public IDBSchema getDBSchema();
+
+ /**
+ * Get the meta data manager associated with this DBStore.
+ *
+ * @since 2.0
+ */
+ public IMetaDataManager getMetaDataManager();
+
+ /**
+ * @since 2.0
+ */
+ public IDBStoreAccessor getReader(ISession session);
+
+ /**
+ * @since 2.0
+ */
+ public IDBStoreAccessor getWriter(ITransaction transaction);
+
+ /**
+ * @since 4.0
+ */
+ public interface Props
+ {
+ public static final String CONNECTION_KEEPALIVE_PERIOD = "connectionKeepAlivePeriod"; //$NON-NLS-1$
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.java
index 963ac7c747..ce92068bfc 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreAccessor.java
@@ -1,32 +1,34 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.server.db;
-
-import org.eclipse.emf.cdo.server.IStoreAccessor;
-
-import java.sql.Connection;
-
-/**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IDBStoreAccessor extends IStoreAccessor.Raw
-{
- public IDBStore getStore();
-
- public Connection getConnection();
-
- /**
- * @since 2.0
- */
- public IPreparedStatementCache getStatementCache();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import org.eclipse.emf.cdo.server.IStoreAccessor;
+
+import java.sql.Connection;
+
+/**
+ * A {@link IStoreAccessor store accessor} for CDO's proprietary object/relational mapper.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IDBStoreAccessor extends IStoreAccessor.Raw
+{
+ public IDBStore getStore();
+
+ public Connection getConnection();
+
+ /**
+ * @since 2.0
+ */
+ public IPreparedStatementCache getStatementCache();
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.java
index 820beac109..524633071d 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IDBStoreChunkReader.java
@@ -1,26 +1,28 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.server.db;
-
-import org.eclipse.emf.cdo.server.IStoreChunkReader;
-
-/**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IDBStoreChunkReader extends IStoreChunkReader
-{
- /**
- * @since 2.0
- */
- public IDBStoreAccessor getAccessor();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import org.eclipse.emf.cdo.server.IStoreChunkReader;
+
+/**
+ * A {@link IStoreChunkReader chunk reader} for CDO's proprietary object/relational mapper.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IDBStoreChunkReader extends IStoreChunkReader
+{
+ /**
+ * @since 2.0
+ */
+ public IDBStoreAccessor getAccessor();
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IIDHandler.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IIDHandler.java
index b35b92b386..b4cabb87bc 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IIDHandler.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IIDHandler.java
@@ -1,94 +1,96 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.server.db;
-
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.id.CDOID.ObjectType;
-import org.eclipse.emf.cdo.common.protocol.CDODataInput;
-import org.eclipse.emf.cdo.common.protocol.CDODataOutput;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
-import org.eclipse.emf.cdo.server.db.mapping.ITypeMapping;
-
-import org.eclipse.net4j.db.DBType;
-import org.eclipse.net4j.util.om.monitor.OMMonitor;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Comparator;
-import java.util.Set;
-
-/**
- * @author Eike Stepper
- * @since 4.0
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IIDHandler extends Comparator<CDOID>
-{
- public IDBStore getStore();
-
- public DBType getDBType();
-
- public Set<ObjectType> getObjectIDTypes();
-
- public ITypeMapping getObjectTypeMapping();
-
- public CDOID createCDOID(String val);
-
- public boolean isLocalCDOID(CDOID id);
-
- public CDOID getLastObjectID();
-
- public void setLastObjectID(CDOID lastObjectID);
-
- /**
- * @since 4.1
- */
- public void adjustLastObjectID(CDOID maxID);
-
- public CDOID getNextLocalObjectID();
-
- public void setNextLocalObjectID(CDOID nextLocalObjectID);
-
- public CDOID getNextCDOID(CDORevision revision);
-
- public void appendCDOID(StringBuilder builder, CDOID id);
-
- /**
- * @since 4.1
- */
- public void setCDOIDRaw(PreparedStatement stmt, int column, Object id) throws SQLException;
-
- public void setCDOID(PreparedStatement stmt, int column, CDOID id) throws SQLException;
-
- public void setCDOID(PreparedStatement stmt, int column, CDOID id, long commitTime) throws SQLException;
-
- public CDOID getCDOID(ResultSet resultSet, int column) throws SQLException;
-
- public CDOID getCDOID(ResultSet resultSet, String name) throws SQLException;
-
- public CDOID getMinCDOID();
-
- public CDOID getMaxCDOID();
-
- public CDOID mapURI(IDBStoreAccessor accessor, String uri, long commitTime);
-
- public String unmapURI(IDBStoreAccessor accessor, CDOID id);
-
- public void rawExport(Connection connection, CDODataOutput out, long fromCommitTime, long toCommitTime)
- throws IOException;
-
- public void rawImport(Connection connection, CDODataInput in, long fromCommitTime, long toCommitTime, OMMonitor fork)
- throws IOException;
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.id.CDOID.ObjectType;
+import org.eclipse.emf.cdo.common.protocol.CDODataInput;
+import org.eclipse.emf.cdo.common.protocol.CDODataOutput;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.server.db.mapping.ITypeMapping;
+
+import org.eclipse.net4j.db.DBType;
+import org.eclipse.net4j.util.om.monitor.OMMonitor;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Comparator;
+import java.util.Set;
+
+/**
+ * Abstracts the handling of {@link CDOID IDs} of different {@link ObjectType ID types}.
+ *
+ * @author Eike Stepper
+ * @since 4.0
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IIDHandler extends Comparator<CDOID>
+{
+ public IDBStore getStore();
+
+ public DBType getDBType();
+
+ public Set<ObjectType> getObjectIDTypes();
+
+ public ITypeMapping getObjectTypeMapping();
+
+ public CDOID createCDOID(String val);
+
+ public boolean isLocalCDOID(CDOID id);
+
+ public CDOID getLastObjectID();
+
+ public void setLastObjectID(CDOID lastObjectID);
+
+ /**
+ * @since 4.1
+ */
+ public void adjustLastObjectID(CDOID maxID);
+
+ public CDOID getNextLocalObjectID();
+
+ public void setNextLocalObjectID(CDOID nextLocalObjectID);
+
+ public CDOID getNextCDOID(CDORevision revision);
+
+ public void appendCDOID(StringBuilder builder, CDOID id);
+
+ /**
+ * @since 4.1
+ */
+ public void setCDOIDRaw(PreparedStatement stmt, int column, Object id) throws SQLException;
+
+ public void setCDOID(PreparedStatement stmt, int column, CDOID id) throws SQLException;
+
+ public void setCDOID(PreparedStatement stmt, int column, CDOID id, long commitTime) throws SQLException;
+
+ public CDOID getCDOID(ResultSet resultSet, int column) throws SQLException;
+
+ public CDOID getCDOID(ResultSet resultSet, String name) throws SQLException;
+
+ public CDOID getMinCDOID();
+
+ public CDOID getMaxCDOID();
+
+ public CDOID mapURI(IDBStoreAccessor accessor, String uri, long commitTime);
+
+ public String unmapURI(IDBStoreAccessor accessor, CDOID id);
+
+ public void rawExport(Connection connection, CDODataOutput out, long fromCommitTime, long toCommitTime)
+ throws IOException;
+
+ public void rawImport(Connection connection, CDODataInput in, long fromCommitTime, long toCommitTime, OMMonitor fork)
+ throws IOException;
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMetaDataManager.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMetaDataManager.java
index 75a9446153..0630ad60c8 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMetaDataManager.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMetaDataManager.java
@@ -1,110 +1,114 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Stefan Winkler - bug 271444: [DB] Multiple refactorings
- * Kai Schlamp - bug 282976: [DB] Influence Mappings through EAnnotations
- * Stefan Winkler - bug 282976: [DB] Influence Mappings through EAnnotations
- */
-package org.eclipse.emf.cdo.server.db;
-
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.protocol.CDODataInput;
-import org.eclipse.emf.cdo.common.protocol.CDODataOutput;
-import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
-
-import org.eclipse.net4j.util.om.monitor.OMMonitor;
-
-import org.eclipse.emf.ecore.EModelElement;
-import org.eclipse.emf.ecore.EPackage;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.util.Collection;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IMetaDataManager
-{
- /**
- * Returns the meta ID of the given {@link EModelElement}. <code> getMetaID(getMetaInstance(x))</code> yields
- * <code>x</code>
- *
- * @param modelElement
- * the element
- * @return the corresponding ID
- * @since 4.0
- */
- public CDOID getMetaID(EModelElement modelElement, long commitTime);
-
- /**
- * Returns the {@link EModelElement} referred to by the given ID. <code> getMetaInstance(getMetaID(m))</code> yields
- * <code>m</code>
- *
- * @since 4.0
- */
- public EModelElement getMetaInstance(CDOID id);
-
- /**
- * Loads a package unit from the database.
- *
- * @param connection
- * the DB connection to read from.
- * @param packageUnit
- * the package unit to load.
- * @return the loaded package unit.
- * @since 2.0
- */
- public EPackage[] loadPackageUnit(Connection connection, InternalCDOPackageUnit packageUnit);
-
- /**
- * @since 4.0
- */
- public void clearMetaIDMappings();
-
- /**
- * Reads information about package units present in the database.
- *
- * @param connection
- * the DB connection to read from.
- * @return a collection of package unit information records which can be passed to
- * {@link IMetaDataManager#loadPackageUnit(Connection, InternalCDOPackageUnit)} in order to read the EPackage.
- * @since 2.0
- */
- public Collection<InternalCDOPackageUnit> readPackageUnits(Connection connection);
-
- /**
- * Write package units to the database.
- *
- * @param connection
- * the DB connection to write to.
- * @param packageUnits
- * the package units to write.
- * @param monitor
- * the monitor to indicate progress.
- * @since 2.0
- */
- public void writePackageUnits(Connection connection, InternalCDOPackageUnit[] packageUnits, OMMonitor monitor);
-
- /**
- * @since 3.0
- */
- public void rawExport(Connection connection, CDODataOutput out, long fromCommitTime, long toCommitTime)
- throws IOException;
-
- /**
- * @since 4.0
- */
- public Collection<InternalCDOPackageUnit> rawImport(Connection connection, CDODataInput in, long fromCommitTime,
- long toCommitTime, OMMonitor monitor) throws IOException;
-
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Stefan Winkler - bug 271444: [DB] Multiple refactorings
+ * Kai Schlamp - bug 282976: [DB] Influence Mappings through EAnnotations
+ * Stefan Winkler - bug 282976: [DB] Influence Mappings through EAnnotations
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.protocol.CDODataInput;
+import org.eclipse.emf.cdo.common.protocol.CDODataOutput;
+import org.eclipse.emf.cdo.server.IRepository;
+import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
+
+import org.eclipse.net4j.util.om.monitor.OMMonitor;
+
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.EPackage;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.util.Collection;
+
+/**
+ * Manages the {@link CDOPackageUnit elements} of the meta model level of a CDO {@link IRepository repository}.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IMetaDataManager
+{
+ /**
+ * Returns the meta ID of the given {@link EModelElement}. <code> getMetaID(getMetaInstance(x))</code> yields
+ * <code>x</code>
+ *
+ * @param modelElement
+ * the element
+ * @return the corresponding ID
+ * @since 4.0
+ */
+ public CDOID getMetaID(EModelElement modelElement, long commitTime);
+
+ /**
+ * Returns the {@link EModelElement} referred to by the given ID. <code> getMetaInstance(getMetaID(m))</code> yields
+ * <code>m</code>
+ *
+ * @since 4.0
+ */
+ public EModelElement getMetaInstance(CDOID id);
+
+ /**
+ * Loads a package unit from the database.
+ *
+ * @param connection
+ * the DB connection to read from.
+ * @param packageUnit
+ * the package unit to load.
+ * @return the loaded package unit.
+ * @since 2.0
+ */
+ public EPackage[] loadPackageUnit(Connection connection, InternalCDOPackageUnit packageUnit);
+
+ /**
+ * @since 4.0
+ */
+ public void clearMetaIDMappings();
+
+ /**
+ * Reads information about package units present in the database.
+ *
+ * @param connection
+ * the DB connection to read from.
+ * @return a collection of package unit information records which can be passed to
+ * {@link IMetaDataManager#loadPackageUnit(Connection, InternalCDOPackageUnit)} in order to read the EPackage.
+ * @since 2.0
+ */
+ public Collection<InternalCDOPackageUnit> readPackageUnits(Connection connection);
+
+ /**
+ * Write package units to the database.
+ *
+ * @param connection
+ * the DB connection to write to.
+ * @param packageUnits
+ * the package units to write.
+ * @param monitor
+ * the monitor to indicate progress.
+ * @since 2.0
+ */
+ public void writePackageUnits(Connection connection, InternalCDOPackageUnit[] packageUnits, OMMonitor monitor);
+
+ /**
+ * @since 3.0
+ */
+ public void rawExport(Connection connection, CDODataOutput out, long fromCommitTime, long toCommitTime)
+ throws IOException;
+
+ /**
+ * @since 4.0
+ */
+ public Collection<InternalCDOPackageUnit> rawImport(Connection connection, CDODataInput in, long fromCommitTime,
+ long toCommitTime, OMMonitor monitor) throws IOException;
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.java
index e975333989..5cd4634393 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IPreparedStatementCache.java
@@ -1,52 +1,54 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Stefan Winkler - 271444: [DB] Multiple refactorings bug 271444
- */
-package org.eclipse.emf.cdo.server.db;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-
-/**
- * @author Stefan Winkler
- * @since 2.0
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IPreparedStatementCache
-{
- public void setConnection(Connection connection);
-
- public PreparedStatement getPreparedStatement(String sql, ReuseProbability reuseProbability);
-
- public void releasePreparedStatement(PreparedStatement ps);
-
- /**
- * An enum for the degree of probability to which a prepared statement is reused later on. This is used for managing
- * the cache of prepared statements so that statements which are more likely reused are kept in the cache longer. Rule
- * of thumb:
- * <ul>
- * <li>For global statements which are used regularly (such as lookup object in cdo_objects) use
- * {@link ReuseProbability#MAX MAX}.
- * <li>For constant object-specific statements which are used regularly use {@link ReuseProbability#HIGH HIGH}.
- * <li>For object-specific statements which are assembled from constants which are used regularly use
- * {@link ReuseProbability#MEDIUM MEDIUM}.
- * <li>For all other dynamic statements, like queries, use {@link ReuseProbability#LOW LOW}
- * </ul>
- *
- * @author Stefan Winkler
- * @since 2.0
- * @noextend This interface is not intended to be extended by clients.
- */
- public static enum ReuseProbability
- {
- MAX, HIGH, MEDIUM, LOW;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Stefan Winkler - 271444: [DB] Multiple refactorings bug 271444
+ */
+package org.eclipse.emf.cdo.server.db;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+
+/**
+ * Caches JDBC {@link PreparedStatement statements} according to given {@link ReuseProbability reuse probabilities}.
+ *
+ * @author Stefan Winkler
+ * @since 2.0
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IPreparedStatementCache
+{
+ public void setConnection(Connection connection);
+
+ public PreparedStatement getPreparedStatement(String sql, ReuseProbability reuseProbability);
+
+ public void releasePreparedStatement(PreparedStatement ps);
+
+ /**
+ * An enum for the degree of probability to which a prepared statement is reused later on. This is used for managing
+ * the cache of prepared statements so that statements which are more likely reused are kept in the cache longer. Rule
+ * of thumb:
+ * <ul>
+ * <li>For global statements which are used regularly (such as lookup object in cdo_objects) use
+ * {@link ReuseProbability#MAX MAX}.
+ * <li>For constant object-specific statements which are used regularly use {@link ReuseProbability#HIGH HIGH}.
+ * <li>For object-specific statements which are assembled from constants which are used regularly use
+ * {@link ReuseProbability#MEDIUM MEDIUM}.
+ * <li>For all other dynamic statements, like queries, use {@link ReuseProbability#LOW LOW}
+ * </ul>
+ *
+ * @author Stefan Winkler
+ * @since 2.0
+ * @noextend This interface is not intended to be extended by clients.
+ */
+ public static enum ReuseProbability
+ {
+ MAX, HIGH, MEDIUM, LOW;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.java b/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.java
index 5438e07bc5..24990893b7 100644
--- a/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.java
+++ b/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OIdentifiableObject.java
@@ -1,21 +1,23 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Victor Roldan Betancort - initial API and implementation
- */
-package org.eclipse.emf.cdo.server.db4o;
-
-/**
- * @author Victor Roldan Betancort
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IDB4OIdentifiableObject
-{
- public String getId();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Victor Roldan Betancort - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.db4o;
+
+/**
+ * Represents DB4O objects with an {@link #getId() ID}.
+ *
+ * @author Victor Roldan Betancort
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IDB4OIdentifiableObject
+{
+ public String getId();
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OStore.java b/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OStore.java
index 703447ad1d..5e1a554266 100644
--- a/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OStore.java
+++ b/plugins/org.eclipse.emf.cdo.server.db4o/src/org/eclipse/emf/cdo/server/db4o/IDB4OStore.java
@@ -1,28 +1,30 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Victor Roldan Betancort - initial API and implementation
- */
-
-package org.eclipse.emf.cdo.server.db4o;
-
-import org.eclipse.emf.cdo.server.IStore;
-
-/**
- * @author Victor Roldan Betancort
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IDB4OStore extends IStore
-{
- public static final String TYPE = "db4o";
-
- public String getStoreLocation();
-
- public int getPort();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Victor Roldan Betancort - initial API and implementation
+ */
+
+package org.eclipse.emf.cdo.server.db4o;
+
+import org.eclipse.emf.cdo.server.IStore;
+
+/**
+ * The main entry point to the API of CDO's integration with DB4O databases.
+ *
+ * @author Victor Roldan Betancort
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IDB4OStore extends IStore
+{
+ public static final String TYPE = "db4o";
+
+ public String getStoreLocation();
+
+ public int getPort();
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryFactory.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryFactory.java
index 8e3a481d6d..ade9cbdf29 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryFactory.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryFactory.java
@@ -1,29 +1,29 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.server;
-
-/**
- * Create CDO {@link IRepository repositories}.
- *
- * @author Eike Stepper
- * @apiviz.uses {@link IRepository} - - creates
- */
-public interface IRepositoryFactory
-{
- /**
- * @since 2.0
- */
- public static final String PRODUCT_GROUP = "org.eclipse.emf.cdo.server.repositories"; //$NON-NLS-1$
-
- public String getRepositoryType();
-
- public IRepository createRepository();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server;
+
+/**
+ * Creates CDO {@link IRepository repositories}.
+ *
+ * @author Eike Stepper
+ * @apiviz.uses {@link IRepository} - - creates
+ */
+public interface IRepositoryFactory
+{
+ /**
+ * @since 2.0
+ */
+ public static final String PRODUCT_GROUP = "org.eclipse.emf.cdo.server.repositories"; //$NON-NLS-1$
+
+ public String getRepositoryType();
+
+ public IRepository createRepository();
+}
diff --git a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryManager.java b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryManager.java
index 13bae41ba8..f796460a9a 100644
--- a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryManager.java
+++ b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryManager.java
@@ -1,25 +1,29 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.team;
-
-import org.eclipse.net4j.util.container.IContainer;
-
-import org.eclipse.core.resources.IProject;
-
-/**
- * @author Eike Stepper
- */
-public interface IRepositoryManager extends IContainer<IRepositoryProject>
-{
- public static final IRepositoryManager INSTANCE = org.eclipse.emf.cdo.internal.team.RepositoryManager.INSTANCE;
-
- public IRepositoryProject getElement(IProject project);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.team;
+
+import org.eclipse.net4j.util.container.IContainer;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * Manages {@link org.eclipse.core.resources.IProject projects} that are mapped
+ * to CDO repositories by the CDO {@link org.eclipse.team.core.RepositoryProvider team provider}.
+ *
+ * @author Eike Stepper
+ * @apiviz.uses {@link IRepositoryProject} - - manages
+ */
+public interface IRepositoryManager extends IContainer<IRepositoryProject>
+{
+ public static final IRepositoryManager INSTANCE = org.eclipse.emf.cdo.internal.team.RepositoryManager.INSTANCE;
+
+ public IRepositoryProject getElement(IProject project);
+}
diff --git a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryProject.java b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryProject.java
index 5dae0cf11e..118b57d024 100644
--- a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryProject.java
+++ b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/IRepositoryProject.java
@@ -1,26 +1,29 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.team;
-
-import org.eclipse.emf.cdo.view.CDOView;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * @author Eike Stepper
- */
-public interface IRepositoryProject extends IAdaptable
-{
- public IProject getProject();
-
- public CDOView getView();
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.team;
+
+import org.eclipse.emf.cdo.view.CDOView;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IAdaptable;
+
+/**
+ * Represents a {@link org.eclipse.core.resources.IProject project} that is mapped
+ * to a CDO repository by the CDO {@link org.eclipse.team.core.RepositoryProvider team provider}.
+ *
+ * @author Eike Stepper
+ */
+public interface IRepositoryProject extends IAdaptable
+{
+ public IProject getProject();
+
+ public CDOView getView();
+}
diff --git a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/package-info.java b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/package-info.java
new file mode 100644
index 0000000000..8af8bf9734
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/team/package-info.java
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+
+/**
+ * Concepts to represent and manage {@link org.eclipse.core.resources.IProject projects} that are mapped
+ * to CDO repositories by the CDO {@link org.eclipse.team.core.RepositoryProvider team provider}
+ */
+package org.eclipse.emf.cdo.team;
+
diff --git a/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/CDOFS.java b/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/CDOFS.java
index c52a845761..a60da36ef0 100644
--- a/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/CDOFS.java
+++ b/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/CDOFS.java
@@ -1,193 +1,195 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.workspace.efs;
-
-import org.eclipse.emf.cdo.location.ICheckoutSource;
-import org.eclipse.emf.cdo.location.IRepositoryLocation;
-import org.eclipse.emf.cdo.location.IRepositoryLocationManager;
-import org.eclipse.emf.cdo.server.db.CDODBUtil;
-import org.eclipse.emf.cdo.server.db.IDBStore;
-import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
-import org.eclipse.emf.cdo.workspace.CDOWorkspace;
-import org.eclipse.emf.cdo.workspace.CDOWorkspaceBase;
-import org.eclipse.emf.cdo.workspace.CDOWorkspaceConfiguration;
-import org.eclipse.emf.cdo.workspace.CDOWorkspaceUtil;
-import org.eclipse.emf.cdo.workspace.internal.efs.CDOWorkspaceFileSystem;
-import org.eclipse.emf.cdo.workspace.internal.efs.CDOWorkspaceStore;
-
-import org.eclipse.net4j.db.DBUtil;
-import org.eclipse.net4j.db.IDBAdapter;
-import org.eclipse.net4j.db.IDBConnectionProvider;
-import org.eclipse.net4j.db.h2.H2Adapter;
-import org.eclipse.net4j.util.io.IOUtil;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-import org.h2.jdbcx.JdbcDataSource;
-
-import javax.sql.DataSource;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URI;
-
-/**
- * @author Eike Stepper
- */
-public final class CDOFS
-{
- private CDOFS()
- {
- }
-
- public static CDOWorkspace open(String projectName, File projectFolder) throws Exception
- {
- IDBStore local = creatLocalStore(projectFolder);
- CDOWorkspaceBase base = createWorkspaceBase(new File(projectFolder, "base"));
- IRepositoryLocation remote = readRepositoryLocation(projectFolder);
-
- CDOWorkspaceConfiguration config = CDOWorkspaceUtil.createWorkspaceConfiguration();
- config.setStore(local);
- config.setBase(base);
- config.setRemote(remote);
-
- CDOWorkspace workspace = config.open();
- return workspace;
- }
-
- public static void checkout(ICheckoutSource checkoutSource, String projectName, IProgressMonitor monitor)
- throws Exception
- {
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IWorkspaceRoot root = workspace.getRoot();
- IProject project = root.getProject(projectName);
- if (project.exists())
- {
- throw new IOException("Project " + projectName + " already exists");
- }
-
- File projectFolder = root.getLocation().append(projectName).toFile();
- URI uri = checkout(checkoutSource, projectName, projectFolder);
-
- IProjectDescription description = workspace.newProjectDescription(projectName);
- description.setLocationURI(uri);
-
- project.create(description, new NullProgressMonitor());
- if (!project.isOpen())
- {
- project.open(new NullProgressMonitor());
- }
- }
-
- private static URI checkout(ICheckoutSource checkoutSource, String projectName, File projectFolder) throws Exception
- {
- IDBStore local = creatLocalStore(projectFolder);
- CDOWorkspaceBase base = createWorkspaceBase(new File(projectFolder, "base"));
-
- IRepositoryLocation remote = checkoutSource.getRepositoryLocation();
- writeRepositoryLocation(projectFolder, remote);
-
- String branchPath = checkoutSource.getBranchPath();
- long timeStamp = checkoutSource.getTimeStamp();
-
- CDOWorkspaceConfiguration config = CDOWorkspaceUtil.createWorkspaceConfiguration();
- config.setStore(local);
- config.setBase(base);
- config.setRemote(remote);
- config.setBranchPath(branchPath);
- config.setTimeStamp(timeStamp);
-
- CDOWorkspace workspace = config.checkout();
- CDOWorkspaceStore store = getFileSystem().addWorkspaceStore(projectName, workspace);
- return store.toURI();
- }
-
- private static CDOWorkspaceFileSystem getFileSystem() throws CoreException
- {
- return (CDOWorkspaceFileSystem)EFS.getFileSystem(CDOWorkspaceFileSystem.SCHEME);
- }
-
- private static IDBStore creatLocalStore(File projectFolder)
- {
- IMappingStrategy mappingStrategy = CDODBUtil.createHorizontalMappingStrategy(false);
- IDBAdapter dbAdapter = createLocalAdapter();
- IDBConnectionProvider dbConnectionProvider = DBUtil.createConnectionProvider(createLocalDataSource(new File(
- projectFolder, "local")));
- IDBStore local = CDODBUtil.createStore(mappingStrategy, dbAdapter, dbConnectionProvider);
- return local;
- }
-
- private static IDBAdapter createLocalAdapter()
- {
- return new H2Adapter();
- }
-
- private static DataSource createLocalDataSource(File folder)
- {
- folder.mkdirs();
- String path = folder.getAbsolutePath().replace('\\', '/');
-
- JdbcDataSource dataSource = new JdbcDataSource();
- dataSource.setURL("jdbc:h2:" + path + "/db");
- return dataSource;
- }
-
- private static CDOWorkspaceBase createWorkspaceBase(File folder)
- {
- folder.mkdirs();
- return CDOWorkspaceUtil.createFolderWorkspaceBase(folder);
- }
-
- private static File getRemotePropertiesFile(File projectFolder)
- {
- return new File(projectFolder, "remote.properties");
- }
-
- private static void writeRepositoryLocation(File projectFolder, IRepositoryLocation remote) throws IOException
- {
- FileOutputStream out = null;
-
- try
- {
- out = new FileOutputStream(getRemotePropertiesFile(projectFolder));
- remote.write(out);
- }
- finally
- {
- IOUtil.close(out);
- }
- }
-
- private static IRepositoryLocation readRepositoryLocation(File projectFolder) throws IOException
- {
- FileInputStream in = null;
-
- try
- {
- in = new FileInputStream(getRemotePropertiesFile(projectFolder));
- return IRepositoryLocationManager.INSTANCE.addRepositoryLocation(in);
- }
- finally
- {
- IOUtil.close(in);
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.workspace.efs;
+
+import org.eclipse.emf.cdo.location.ICheckoutSource;
+import org.eclipse.emf.cdo.location.IRepositoryLocation;
+import org.eclipse.emf.cdo.location.IRepositoryLocationManager;
+import org.eclipse.emf.cdo.server.db.CDODBUtil;
+import org.eclipse.emf.cdo.server.db.IDBStore;
+import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
+import org.eclipse.emf.cdo.workspace.CDOWorkspace;
+import org.eclipse.emf.cdo.workspace.CDOWorkspaceBase;
+import org.eclipse.emf.cdo.workspace.CDOWorkspaceConfiguration;
+import org.eclipse.emf.cdo.workspace.CDOWorkspaceUtil;
+import org.eclipse.emf.cdo.workspace.internal.efs.CDOWorkspaceFileSystem;
+import org.eclipse.emf.cdo.workspace.internal.efs.CDOWorkspaceStore;
+
+import org.eclipse.net4j.db.DBUtil;
+import org.eclipse.net4j.db.IDBAdapter;
+import org.eclipse.net4j.db.IDBConnectionProvider;
+import org.eclipse.net4j.db.h2.H2Adapter;
+import org.eclipse.net4j.util.io.IOUtil;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.h2.jdbcx.JdbcDataSource;
+
+import javax.sql.DataSource;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URI;
+
+/**
+ * This class is the main entry point to the {@link org.eclipse.core.filesystem.EFS Eclipse File System (EFS)} implementation
+ * for CDO {@link org.eclipse.emf.cdo.workspace.CDOWorkspace workspaces}.
+ * @author Eike Stepper
+ */
+public final class CDOFS
+{
+ private CDOFS()
+ {
+ }
+
+ public static CDOWorkspace open(String projectName, File projectFolder) throws Exception
+ {
+ IDBStore local = creatLocalStore(projectFolder);
+ CDOWorkspaceBase base = createWorkspaceBase(new File(projectFolder, "base"));
+ IRepositoryLocation remote = readRepositoryLocation(projectFolder);
+
+ CDOWorkspaceConfiguration config = CDOWorkspaceUtil.createWorkspaceConfiguration();
+ config.setStore(local);
+ config.setBase(base);
+ config.setRemote(remote);
+
+ CDOWorkspace workspace = config.open();
+ return workspace;
+ }
+
+ public static void checkout(ICheckoutSource checkoutSource, String projectName, IProgressMonitor monitor)
+ throws Exception
+ {
+ IWorkspace workspace = ResourcesPlugin.getWorkspace();
+ IWorkspaceRoot root = workspace.getRoot();
+ IProject project = root.getProject(projectName);
+ if (project.exists())
+ {
+ throw new IOException("Project " + projectName + " already exists");
+ }
+
+ File projectFolder = root.getLocation().append(projectName).toFile();
+ URI uri = checkout(checkoutSource, projectName, projectFolder);
+
+ IProjectDescription description = workspace.newProjectDescription(projectName);
+ description.setLocationURI(uri);
+
+ project.create(description, new NullProgressMonitor());
+ if (!project.isOpen())
+ {
+ project.open(new NullProgressMonitor());
+ }
+ }
+
+ private static URI checkout(ICheckoutSource checkoutSource, String projectName, File projectFolder) throws Exception
+ {
+ IDBStore local = creatLocalStore(projectFolder);
+ CDOWorkspaceBase base = createWorkspaceBase(new File(projectFolder, "base"));
+
+ IRepositoryLocation remote = checkoutSource.getRepositoryLocation();
+ writeRepositoryLocation(projectFolder, remote);
+
+ String branchPath = checkoutSource.getBranchPath();
+ long timeStamp = checkoutSource.getTimeStamp();
+
+ CDOWorkspaceConfiguration config = CDOWorkspaceUtil.createWorkspaceConfiguration();
+ config.setStore(local);
+ config.setBase(base);
+ config.setRemote(remote);
+ config.setBranchPath(branchPath);
+ config.setTimeStamp(timeStamp);
+
+ CDOWorkspace workspace = config.checkout();
+ CDOWorkspaceStore store = getFileSystem().addWorkspaceStore(projectName, workspace);
+ return store.toURI();
+ }
+
+ private static CDOWorkspaceFileSystem getFileSystem() throws CoreException
+ {
+ return (CDOWorkspaceFileSystem)EFS.getFileSystem(CDOWorkspaceFileSystem.SCHEME);
+ }
+
+ private static IDBStore creatLocalStore(File projectFolder)
+ {
+ IMappingStrategy mappingStrategy = CDODBUtil.createHorizontalMappingStrategy(false);
+ IDBAdapter dbAdapter = createLocalAdapter();
+ IDBConnectionProvider dbConnectionProvider = DBUtil.createConnectionProvider(createLocalDataSource(new File(
+ projectFolder, "local")));
+ IDBStore local = CDODBUtil.createStore(mappingStrategy, dbAdapter, dbConnectionProvider);
+ return local;
+ }
+
+ private static IDBAdapter createLocalAdapter()
+ {
+ return new H2Adapter();
+ }
+
+ private static DataSource createLocalDataSource(File folder)
+ {
+ folder.mkdirs();
+ String path = folder.getAbsolutePath().replace('\\', '/');
+
+ JdbcDataSource dataSource = new JdbcDataSource();
+ dataSource.setURL("jdbc:h2:" + path + "/db");
+ return dataSource;
+ }
+
+ private static CDOWorkspaceBase createWorkspaceBase(File folder)
+ {
+ folder.mkdirs();
+ return CDOWorkspaceUtil.createFolderWorkspaceBase(folder);
+ }
+
+ private static File getRemotePropertiesFile(File projectFolder)
+ {
+ return new File(projectFolder, "remote.properties");
+ }
+
+ private static void writeRepositoryLocation(File projectFolder, IRepositoryLocation remote) throws IOException
+ {
+ FileOutputStream out = null;
+
+ try
+ {
+ out = new FileOutputStream(getRemotePropertiesFile(projectFolder));
+ remote.write(out);
+ }
+ finally
+ {
+ IOUtil.close(out);
+ }
+ }
+
+ private static IRepositoryLocation readRepositoryLocation(File projectFolder) throws IOException
+ {
+ FileInputStream in = null;
+
+ try
+ {
+ in = new FileInputStream(getRemotePropertiesFile(projectFolder));
+ return IRepositoryLocationManager.INSTANCE.addRepositoryLocation(in);
+ }
+ finally
+ {
+ IOUtil.close(in);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/package-info.java b/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/package-info.java
new file mode 100644
index 0000000000..f3b2f6ad48
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/efs/package-info.java
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+
+/**
+ * Concepts to deal with the {@link org.eclipse.core.filesystem.EFS Eclipse File System (EFS)} implementation
+ * for CDO {@link org.eclipse.emf.cdo.workspace.CDOWorkspace workspaces}
+ */
+package org.eclipse.emf.cdo.workspace.efs;
+
diff --git a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/CDOWorkspace.java b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/CDOWorkspace.java
index 8d3d5a6b17..8e0933fcfa 100644
--- a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/CDOWorkspace.java
+++ b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/CDOWorkspace.java
@@ -1,85 +1,89 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.workspace;
-
-import org.eclipse.emf.cdo.common.commit.CDOChangeSetData;
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
-import org.eclipse.emf.cdo.common.revision.CDORevisionProvider;
-import org.eclipse.emf.cdo.transaction.CDOMerger;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.CommitException;
-import org.eclipse.emf.cdo.view.CDOView;
-
-import org.eclipse.net4j.util.collection.Closeable;
-import org.eclipse.net4j.util.event.IEvent;
-import org.eclipse.net4j.util.event.INotifier;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-/**
- * Represents a local {@link CDOWorkspaceConfiguration#checkout() checkout} from a remote repository.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface CDOWorkspace extends CDORevisionProvider, Closeable, INotifier
-{
- public String getBranchPath();
-
- public long getTimeStamp();
-
- public boolean isFixed();
-
- public CDOWorkspaceBase getBase();
-
- public CDOView openView();
-
- public CDOView openView(ResourceSet resourceSet);
-
- public CDOTransaction openTransaction();
-
- public CDOTransaction openTransaction(ResourceSet resourceSet);
-
- public CDOTransaction update(CDOMerger merger);
-
- public CDOTransaction merge(CDOMerger merger, String branchPath);
-
- public CDOTransaction merge(CDOMerger merger, String branchPath, long timeStamp);
-
- public CDOCommitInfo checkin() throws CommitException;
-
- public CDOCommitInfo checkin(String comment) throws CommitException;
-
- public CDOChangeSetData compare(String branchPath);
-
- public CDOChangeSetData compare(String branchPath, long timeStamp);
-
- public CDOChangeSetData getLocalChanges();
-
- public void replace(String branchPath, long timeStamp);
-
- public void revert();
-
- /**
- * @since 4.1
- */
- public boolean isDirty();
-
- /**
- * @author Eike Stepper
- * @since 4.1
- */
- public interface DirtyStateChangedEvent extends IEvent
- {
- public boolean isDirty();
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.workspace;
+
+import org.eclipse.emf.cdo.common.commit.CDOChangeSetData;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+import org.eclipse.emf.cdo.common.revision.CDORevisionProvider;
+import org.eclipse.emf.cdo.transaction.CDOMerger;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CommitException;
+import org.eclipse.emf.cdo.view.CDOView;
+
+import org.eclipse.net4j.util.collection.Closeable;
+import org.eclipse.net4j.util.event.IEvent;
+import org.eclipse.net4j.util.event.INotifier;
+
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Represents a local {@link CDOWorkspaceConfiguration#checkout() checkout} from a remote repository.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface CDOWorkspace extends CDORevisionProvider, Closeable, INotifier
+{
+ public String getBranchPath();
+
+ public long getTimeStamp();
+
+ public boolean isFixed();
+
+ public CDOWorkspaceBase getBase();
+
+ public CDOView openView();
+
+ public CDOView openView(ResourceSet resourceSet);
+
+ public CDOTransaction openTransaction();
+
+ public CDOTransaction openTransaction(ResourceSet resourceSet);
+
+ public CDOTransaction update(CDOMerger merger);
+
+ public CDOTransaction merge(CDOMerger merger, String branchPath);
+
+ public CDOTransaction merge(CDOMerger merger, String branchPath, long timeStamp);
+
+ public CDOCommitInfo checkin() throws CommitException;
+
+ public CDOCommitInfo checkin(String comment) throws CommitException;
+
+ public CDOChangeSetData compare(String branchPath);
+
+ public CDOChangeSetData compare(String branchPath, long timeStamp);
+
+ public CDOChangeSetData getLocalChanges();
+
+ public void replace(String branchPath, long timeStamp);
+
+ public void revert();
+
+ /**
+ * @since 4.1
+ */
+ public boolean isDirty();
+
+ /**
+ * An {@link IEvent event} fired when the overall state of the {@link CDOWorkspace workspace} changes between <i>dirty</i> and <i>clean</i>.
+ * fired.
+ *
+ * @see CDOWorkspace#isDirty()
+ * @author Eike Stepper
+ * @since 4.1
+ */
+ public interface DirtyStateChangedEvent extends IEvent
+ {
+ public boolean isDirty();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/package-info.java b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/package-info.java
new file mode 100644
index 0000000000..32b1973fc7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/workspace/package-info.java
@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+
+/**
+ * Concepts to checkout, open and further operate CDO {@link org.eclipse.emf.cdo.workspace.CDOWorkspace workspaces}
+ */
+package org.eclipse.emf.cdo.workspace;
+
diff --git a/plugins/org.eclipse.emf.cdo/.settings/.api_filters b/plugins/org.eclipse.emf.cdo/.settings/.api_filters
index 2668125970..1626abcab2 100644
--- a/plugins/org.eclipse.emf.cdo/.settings/.api_filters
+++ b/plugins/org.eclipse.emf.cdo/.settings/.api_filters
@@ -1,222 +1,222 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.emf.cdo" version="2">
- <resource path="src/org/eclipse/emf/cdo/CDOObject.java" type="org.eclipse.emf.cdo.CDOObject">
- <filter id="403804204">
- <message_arguments>
- <message_argument value="org.eclipse.emf.cdo.CDOObject"/>
- <message_argument value="cdoLockState()"/>
- </message_arguments>
- </filter>
- <filter id="403804204">
- <message_arguments>
- <message_argument value="org.eclipse.emf.cdo.CDOObject"/>
- <message_argument value="cdoWriteOption()"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/CDOObjectReference.java" type="org.eclipse.emf.cdo.CDOObjectReference">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="CDOReference&lt;OBJECT&gt;"/>
- <message_argument value="CDOObjectReference"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/session/CDORepositoryInfo.java" type="org.eclipse.emf.cdo.session.CDORepositoryInfo">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOCommonRepository"/>
- <message_argument value="CDORepositoryInfo"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/session/CDOSession.java" type="org.eclipse.emf.cdo.session.CDOSession">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOCommonSession"/>
- <message_argument value="CDOSession"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/session/CDOSession.java" type="org.eclipse.emf.cdo.session.CDOSession$Options">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="Options"/>
- <message_argument value="Options"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java" type="org.eclipse.emf.cdo.session.CDOSessionInvalidationEvent">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOCommitInfo"/>
- <message_argument value="CDOSessionInvalidationEvent"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/session/CDOSessionLocksChangedEvent.java" type="org.eclipse.emf.cdo.session.CDOSessionLocksChangedEvent">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOLockChangeInfo"/>
- <message_argument value="CDOSessionLocksChangedEvent"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/transaction/CDOPushTransaction.java" type="org.eclipse.emf.cdo.transaction.CDOPushTransaction">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="CDOTransaction"/>
- <message_argument value="CDOCommonView"/>
- <message_argument value="CDOPushTransaction"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/transaction/CDOSavepoint.java" type="org.eclipse.emf.cdo.transaction.CDOSavepoint">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOChangeSetDataProvider"/>
- <message_argument value="CDOSavepoint"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/transaction/CDOTransaction.java" type="org.eclipse.emf.cdo.transaction.CDOTransaction">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOChangeSetDataProvider"/>
- <message_argument value="CDOTransaction"/>
- </message_arguments>
- </filter>
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOCommonTransaction"/>
- <message_argument value="CDOTransaction"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/view/CDOQuery.java" type="org.eclipse.emf.cdo.view.CDOQuery">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOQueryInfo"/>
- <message_argument value="CDOQuery"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/view/CDOView.java" type="org.eclipse.emf.cdo.view.CDOView">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOCommonView"/>
- <message_argument value="CDOView"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/view/CDOView.java" type="org.eclipse.emf.cdo.view.CDOView$Options">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="Options"/>
- <message_argument value="Options"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/cdo/view/CDOViewLocksChangedEvent.java" type="org.eclipse.emf.cdo.view.CDOViewLocksChangedEvent">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOLockChangeInfo"/>
- <message_argument value="CDOViewLocksChangedEvent"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/object/CDOObjectReferenceImpl.java" type="org.eclipse.emf.internal.cdo.object.CDOObjectReferenceImpl">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="CDOObjectReference"/>
- <message_argument value="CDOReference"/>
- <message_argument value="CDOObjectReferenceImpl"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java" type="org.eclipse.emf.internal.cdo.session.CDOSessionImpl">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="InternalCDOSession"/>
- <message_argument value="CDOCommonSession"/>
- <message_argument value="CDOSessionImpl"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java" type="org.eclipse.emf.internal.cdo.session.CDOSessionImpl$OptionsImpl">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="Options"/>
- <message_argument value="Options"/>
- <message_argument value="OptionsImpl"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/session/DelegatingSessionProtocol.java" type="org.eclipse.emf.internal.cdo.session.DelegatingSessionProtocol">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="CDOSessionProtocol"/>
- <message_argument value="CDOProtocol"/>
- <message_argument value="DelegatingSessionProtocol"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/util/DefaultLocksChangedEvent.java" type="org.eclipse.emf.internal.cdo.util.DefaultLocksChangedEvent">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="CDOLockChangeInfo"/>
- <message_argument value="DefaultLocksChangedEvent"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java" type="org.eclipse.emf.internal.cdo.view.AbstractCDOView">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="InternalCDOView"/>
- <message_argument value="CDOCommonView"/>
- <message_argument value="AbstractCDOView"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java" type="org.eclipse.emf.internal.cdo.view.CDOViewImpl$OptionsImpl">
- <filter id="574660632">
- <message_arguments>
- <message_argument value="Options"/>
- <message_argument value="Options"/>
- <message_argument value="OptionsImpl"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java" type="org.eclipse.emf.internal.cdo.view.CDOViewImpl$OptionsImpl$LockNotificationEventImpl">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="LockNotificationEvent"/>
- <message_argument value="LockNotificationEventImpl"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java" type="org.eclipse.emf.spi.cdo.CDOSessionProtocol">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOProtocol"/>
- <message_argument value="CDOSessionProtocol"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java" type="org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="CDOBranchPoint"/>
- <message_argument value="CommitTransactionResult"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/emf/spi/cdo/InternalCDOObject.java" type="org.eclipse.emf.spi.cdo.InternalCDOObject">
- <filter id="571473929">
- <message_arguments>
- <message_argument value="CDOObjectMarker"/>
- <message_argument value="InternalCDOObject"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.cdo" version="2">
+ <resource path="src/org/eclipse/emf/cdo/CDOObject.java" type="org.eclipse.emf.cdo.CDOObject">
+ <filter id="403804204">
+ <message_arguments>
+ <message_argument value="org.eclipse.emf.cdo.CDOObject"/>
+ <message_argument value="cdoLockState()"/>
+ </message_arguments>
+ </filter>
+ <filter id="403804204">
+ <message_arguments>
+ <message_argument value="org.eclipse.emf.cdo.CDOObject"/>
+ <message_argument value="cdoWriteOption()"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/CDOObjectReference.java" type="org.eclipse.emf.cdo.CDOObjectReference">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="CDOReference&lt;OBJECT&gt;"/>
+ <message_argument value="CDOObjectReference"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/session/CDORepositoryInfo.java" type="org.eclipse.emf.cdo.session.CDORepositoryInfo">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOCommonRepository"/>
+ <message_argument value="CDORepositoryInfo"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/session/CDOSession.java" type="org.eclipse.emf.cdo.session.CDOSession">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOCommonSession"/>
+ <message_argument value="CDOSession"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/session/CDOSession.java" type="org.eclipse.emf.cdo.session.CDOSession$Options">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="Options"/>
+ <message_argument value="Options"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java" type="org.eclipse.emf.cdo.session.CDOSessionInvalidationEvent">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOCommitInfo"/>
+ <message_argument value="CDOSessionInvalidationEvent"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/session/CDOSessionLocksChangedEvent.java" type="org.eclipse.emf.cdo.session.CDOSessionLocksChangedEvent">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOLockChangeInfo"/>
+ <message_argument value="CDOSessionLocksChangedEvent"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/transaction/CDOPushTransaction.java" type="org.eclipse.emf.cdo.transaction.CDOPushTransaction">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="CDOTransaction"/>
+ <message_argument value="CDOCommonView"/>
+ <message_argument value="CDOPushTransaction"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/transaction/CDOSavepoint.java" type="org.eclipse.emf.cdo.transaction.CDOSavepoint">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOChangeSetDataProvider"/>
+ <message_argument value="CDOSavepoint"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/transaction/CDOTransaction.java" type="org.eclipse.emf.cdo.transaction.CDOTransaction">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOChangeSetDataProvider"/>
+ <message_argument value="CDOTransaction"/>
+ </message_arguments>
+ </filter>
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOCommonTransaction"/>
+ <message_argument value="CDOTransaction"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/view/CDOQuery.java" type="org.eclipse.emf.cdo.view.CDOQuery">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOQueryInfo"/>
+ <message_argument value="CDOQuery"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/view/CDOView.java" type="org.eclipse.emf.cdo.view.CDOView">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOCommonView"/>
+ <message_argument value="CDOView"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/view/CDOView.java" type="org.eclipse.emf.cdo.view.CDOView$Options">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="Options"/>
+ <message_argument value="Options"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/cdo/view/CDOViewLocksChangedEvent.java" type="org.eclipse.emf.cdo.view.CDOViewLocksChangedEvent">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOLockChangeInfo"/>
+ <message_argument value="CDOViewLocksChangedEvent"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/object/CDOObjectReferenceImpl.java" type="org.eclipse.emf.internal.cdo.object.CDOObjectReferenceImpl">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="CDOObjectReference"/>
+ <message_argument value="CDOReference"/>
+ <message_argument value="CDOObjectReferenceImpl"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java" type="org.eclipse.emf.internal.cdo.session.CDOSessionImpl">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="InternalCDOSession"/>
+ <message_argument value="CDOCommonSession"/>
+ <message_argument value="CDOSessionImpl"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java" type="org.eclipse.emf.internal.cdo.session.CDOSessionImpl$OptionsImpl">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="Options"/>
+ <message_argument value="Options"/>
+ <message_argument value="OptionsImpl"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/session/DelegatingSessionProtocol.java" type="org.eclipse.emf.internal.cdo.session.DelegatingSessionProtocol">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="CDOSessionProtocol"/>
+ <message_argument value="CDOProtocol"/>
+ <message_argument value="DelegatingSessionProtocol"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/util/DefaultLocksChangedEvent.java" type="org.eclipse.emf.internal.cdo.util.DefaultLocksChangedEvent">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="CDOLockChangeInfo"/>
+ <message_argument value="DefaultLocksChangedEvent"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java" type="org.eclipse.emf.internal.cdo.view.AbstractCDOView">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="InternalCDOView"/>
+ <message_argument value="CDOCommonView"/>
+ <message_argument value="AbstractCDOView"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java" type="org.eclipse.emf.internal.cdo.view.CDOViewImpl$OptionsImpl">
+ <filter id="574660632">
+ <message_arguments>
+ <message_argument value="Options"/>
+ <message_argument value="Options"/>
+ <message_argument value="OptionsImpl"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java" type="org.eclipse.emf.internal.cdo.view.CDOViewImpl$OptionsImpl$LockNotificationEventImpl">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="LockNotificationEvent"/>
+ <message_argument value="LockNotificationEventImpl"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java" type="org.eclipse.emf.spi.cdo.CDOSessionProtocol">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOProtocol"/>
+ <message_argument value="CDOSessionProtocol"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java" type="org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="CDOBranchPoint"/>
+ <message_argument value="CommitTransactionResult"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/emf/spi/cdo/InternalCDOObject.java" type="org.eclipse.emf.spi.cdo.InternalCDOObject">
+ <filter id="571473929">
+ <message_arguments>
+ <message_argument value="CDOObjectMarker"/>
+ <message_argument value="InternalCDOObject"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.java
index cff3fb3d2a..3200cd22aa 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPostEventTransactionHandler.java
@@ -22,6 +22,10 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
/**
+ * An abstract call-back class that is called by a {@link CDOTransaction transcation} after {@link CDOObject objects} have been
+ * attached, modified or detached.
+ *
+ * @see CDOTransactionHandler1
* @author Martin Fluegge
* @since 4.1
*/
@@ -92,6 +96,8 @@ public abstract class CDOPostEventTransactionHandler implements CDOTransactionHa
protected abstract void detachedObject(CDOTransaction transaction, CDOObject object, Notification msg);
/**
+ * An empty default implementation of {@link CDOPostEventTransactionHandler}.
+ *
* @author Eike Stepper
*/
public static class Default extends CDOPostEventTransactionHandler
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.java
index 6d57fdc37e..4136dc0d75 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler1.java
@@ -1,115 +1,116 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Simon McDuff - bug 201266
- * Simon McDuff - bug 233314
- * Simon McDuff - bug 247143
- */
-package org.eclipse.emf.cdo.transaction;
-
-import org.eclipse.emf.cdo.CDOObject;
-import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
-import org.eclipse.emf.cdo.view.CDOView;
-
-/**
- * A call-back interface that is called by a {@link CDOTransaction transcation} when {@link CDOObject objects} are
- * attached, modified or detached.
- *
- * @author Eike Stepper
- * @since 4.0
- */
-public interface CDOTransactionHandler1 extends CDOTransactionHandlerBase
-{
- /**
- * Called by a <code>CDOTransaction</code> <b>before</b> an object is added. The implementor of this method is allowed
- * to throw an unchecked exception that will propagate up to the operation that is about to add the object (thereby
- * preventing the operation from successful completion).
- * <p>
- * <b>Note:</b> Implementors <b>must not</b> start threads which access the {@link CDOView view} and wait for their
- * completion since deadlocks can result. The following example causes a deadlock:<br>
- *
- * <pre>
- * getDisplay().syncExec(new Runnable()
- * {
- * public void run()
- * {
- * try
- * {
- * cdoObject.getName();
- * }
- * catch (Exception ignore)
- * {
- * }
- * }
- * });
- * </pre>
- *
- * If you need to synchronously execute threads which access the {@link CDOView view} you should use
- * {@link CDOAsyncTransactionHandler}.
- */
- public void attachingObject(CDOTransaction transaction, CDOObject object);
-
- /**
- * Called by a <code>CDOTransaction</code> <b>before</b> an object is detached. The implementor of this method is
- * allowed to throw an unchecked exception that will propagate up to the operation that is about to remove the object
- * (thereby preventing the operation from completing successfully).
- * <p>
- * <b>Note:</b> Implementors <b>must not</b> start threads which access the {@link CDOView view} and wait for their
- * completion since deadlocks can result. The following example causes a deadlock:<br>
- *
- * <pre>
- * getDisplay().syncExec(new Runnable()
- * {
- * public void run()
- * {
- * try
- * {
- * cdoObject.getName();
- * }
- * catch (Exception ignore)
- * {
- * }
- * }
- * });
- * </pre>
- *
- * If you need to synchronously execute threads which access the {@link CDOView view} you should use
- * {@link CDOAsyncTransactionHandler}.
- */
- public void detachingObject(CDOTransaction transaction, CDOObject object);
-
- /**
- * Called by a <code>CDOTransaction</code> <b>before</b> an object is modified. The implementor of this method is
- * allowed to throw an unchecked exception that will propagate up to the operation that is about to modify the object
- * (thereby preventing the operation from completing successfully).
- * <p>
- * <b>Note:</b> Implementors <b>must not</b> start threads which access the {@link CDOView view} and wait for their
- * completion since deadlocks can result. The following example causes a deadlock:<br>
- *
- * <pre>
- * getDisplay().syncExec(new Runnable()
- * {
- * public void run()
- * {
- * try
- * {
- * cdoObject.getName();
- * }
- * catch (Exception ignore)
- * {
- * }
- * }
- * });
- * </pre>
- *
- * If you need to synchronously execute threads which access the {@link CDOView view} you should use
- * {@link CDOAsyncTransactionHandler}.
- */
- public void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureDelta);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Simon McDuff - bug 201266
+ * Simon McDuff - bug 233314
+ * Simon McDuff - bug 247143
+ */
+package org.eclipse.emf.cdo.transaction;
+
+import org.eclipse.emf.cdo.CDOObject;
+import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
+import org.eclipse.emf.cdo.view.CDOView;
+
+/**
+ * A call-back interface that is called by a {@link CDOTransaction transcation} before {@link CDOObject objects} are
+ * attached, modified or detached.
+ *
+ * @see CDOPostEventTransactionHandler
+ * @author Eike Stepper
+ * @since 4.0
+ */
+public interface CDOTransactionHandler1 extends CDOTransactionHandlerBase
+{
+ /**
+ * Called by a <code>CDOTransaction</code> <b>before</b> an object is added. The implementor of this method is allowed
+ * to throw an unchecked exception that will propagate up to the operation that is about to add the object (thereby
+ * preventing the operation from successful completion).
+ * <p>
+ * <b>Note:</b> Implementors <b>must not</b> start threads which access the {@link CDOView view} and wait for their
+ * completion since deadlocks can result. The following example causes a deadlock:<br>
+ *
+ * <pre>
+ * getDisplay().syncExec(new Runnable()
+ * {
+ * public void run()
+ * {
+ * try
+ * {
+ * cdoObject.getName();
+ * }
+ * catch (Exception ignore)
+ * {
+ * }
+ * }
+ * });
+ * </pre>
+ *
+ * If you need to synchronously execute threads which access the {@link CDOView view} you should use
+ * {@link CDOAsyncTransactionHandler}.
+ */
+ public void attachingObject(CDOTransaction transaction, CDOObject object);
+
+ /**
+ * Called by a <code>CDOTransaction</code> <b>before</b> an object is detached. The implementor of this method is
+ * allowed to throw an unchecked exception that will propagate up to the operation that is about to remove the object
+ * (thereby preventing the operation from completing successfully).
+ * <p>
+ * <b>Note:</b> Implementors <b>must not</b> start threads which access the {@link CDOView view} and wait for their
+ * completion since deadlocks can result. The following example causes a deadlock:<br>
+ *
+ * <pre>
+ * getDisplay().syncExec(new Runnable()
+ * {
+ * public void run()
+ * {
+ * try
+ * {
+ * cdoObject.getName();
+ * }
+ * catch (Exception ignore)
+ * {
+ * }
+ * }
+ * });
+ * </pre>
+ *
+ * If you need to synchronously execute threads which access the {@link CDOView view} you should use
+ * {@link CDOAsyncTransactionHandler}.
+ */
+ public void detachingObject(CDOTransaction transaction, CDOObject object);
+
+ /**
+ * Called by a <code>CDOTransaction</code> <b>before</b> an object is modified. The implementor of this method is
+ * allowed to throw an unchecked exception that will propagate up to the operation that is about to modify the object
+ * (thereby preventing the operation from completing successfully).
+ * <p>
+ * <b>Note:</b> Implementors <b>must not</b> start threads which access the {@link CDOView view} and wait for their
+ * completion since deadlocks can result. The following example causes a deadlock:<br>
+ *
+ * <pre>
+ * getDisplay().syncExec(new Runnable()
+ * {
+ * public void run()
+ * {
+ * try
+ * {
+ * cdoObject.getName();
+ * }
+ * catch (Exception ignore)
+ * {
+ * }
+ * }
+ * });
+ * </pre>
+ *
+ * If you need to synchronously execute threads which access the {@link CDOView view} you should use
+ * {@link CDOAsyncTransactionHandler}.
+ */
+ public void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureDelta);
+}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.java
index 0c5998bd3f..996df23549 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler2.java
@@ -1,50 +1,50 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Simon McDuff - bug 201266
- * Simon McDuff - bug 233314
- * Simon McDuff - bug 247143
- */
-package org.eclipse.emf.cdo.transaction;
-
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
-
-/**
- * A call-back interface that is called by a {@link CDOTransaction transcation} when it is about to be committed, has
- * been committed or rolled back.
- *
- * @author Eike Stepper
- * @since 4.0
- */
-public interface CDOTransactionHandler2 extends CDOTransactionHandlerBase
-{
- /**
- * Called by a <code>CDOTransaction</code> <b>before</b> it is being committed. The implementor of this method is
- * allowed to throw an unchecked exception that will propagate up to the operation that is about to commit the
- * transaction (thereby preventing the operation from completing successfully). The implementor of this method is
- * allowed to apply changes to the object graph managed by the transaction.
- */
- public void committingTransaction(CDOTransaction transaction, CDOCommitContext commitContext);
-
- /**
- * Called by a <code>CDOTransaction</code> <b>after</b> it is being committed. The implementor of this method is
- * <b>not</b> allowed to throw an unchecked exception.
- * <p>
- * If you're interested in the results of the commit operation consider to implement
- * {@link CDOTransactionHandler3#committedTransaction(CDOTransaction, CDOCommitContext, CDOCommitInfo)
- * CDOTransactionHandler3.committedTransaction()}.
- */
- public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext);
-
- /**
- * Called by a <code>CDOTransaction</code> <b>after</b> it is rolled back. If the implementor of this method throws an
- * exception it will be logged as an error and subsequent handlers will be further called.
- */
- public void rolledBackTransaction(CDOTransaction transaction);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Simon McDuff - bug 201266
+ * Simon McDuff - bug 233314
+ * Simon McDuff - bug 247143
+ */
+package org.eclipse.emf.cdo.transaction;
+
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+
+/**
+ * A call-back interface that is called by a {@link CDOTransaction transcation} before it is committed and after it has
+ * been committed or rolled back.
+ *
+ * @author Eike Stepper
+ * @since 4.0
+ */
+public interface CDOTransactionHandler2 extends CDOTransactionHandlerBase
+{
+ /**
+ * Called by a <code>CDOTransaction</code> <b>before</b> it is being committed. The implementor of this method is
+ * allowed to throw an unchecked exception that will propagate up to the operation that is about to commit the
+ * transaction (thereby preventing the operation from completing successfully). The implementor of this method is
+ * allowed to apply changes to the object graph managed by the transaction.
+ */
+ public void committingTransaction(CDOTransaction transaction, CDOCommitContext commitContext);
+
+ /**
+ * Called by a <code>CDOTransaction</code> <b>after</b> it is being committed. The implementor of this method is
+ * <b>not</b> allowed to throw an unchecked exception.
+ * <p>
+ * If you're interested in the results of the commit operation consider to implement
+ * {@link CDOTransactionHandler3#committedTransaction(CDOTransaction, CDOCommitContext, CDOCommitInfo)
+ * CDOTransactionHandler3.committedTransaction()}.
+ */
+ public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext);
+
+ /**
+ * Called by a <code>CDOTransaction</code> <b>after</b> it is rolled back. If the implementor of this method throws an
+ * exception it will be logged as an error and subsequent handlers will be further called.
+ */
+ public void rolledBackTransaction(CDOTransaction transaction);
+}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.java
index b3d10e4714..d51f31bf4c 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionHandler3.java
@@ -1,32 +1,32 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.transaction;
-
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
-
-/**
- * A call-back interface that is called by a {@link CDOTransaction transcation} when it is about to be committed, has
- * been committed or rolled back.
- *
- * @author Eike Stepper
- * @since 4.1
- */
-public interface CDOTransactionHandler3 extends CDOTransactionHandler2
-{
- /**
- * Called by a <code>CDOTransaction</code> <b>after</b> it is being committed. The implementor of this method is
- * <b>not</b> allowed to throw an unchecked exception.
- * <p>
- * Note that {@link CDOTransactionHandler2#committedTransaction(CDOTransaction, CDOCommitContext)
- * CDOTransactionHandler2.committedTransaction()} is not called.
- */
- public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext, CDOCommitInfo result);
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.transaction;
+
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+
+/**
+ * A call-back interface that is called by a {@link CDOTransaction transcation} before it is committed and after it has
+ * been committed (with result info) or rolled back.
+ *
+ * @author Eike Stepper
+ * @since 4.1
+ */
+public interface CDOTransactionHandler3 extends CDOTransactionHandler2
+{
+ /**
+ * Called by a <code>CDOTransaction</code> <b>after</b> it is being committed. The implementor of this method is
+ * <b>not</b> allowed to throw an unchecked exception.
+ * <p>
+ * Note that {@link CDOTransactionHandler2#committedTransaction(CDOTransaction, CDOCommitContext)
+ * CDOTransactionHandler2.committedTransaction()} is not called.
+ */
+ public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext, CDOCommitInfo result);
+}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/util/CDOBalancedTree.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/util/CDOBalancedTree.java
index 7b8a8d4f66..7ea79469ed 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/util/CDOBalancedTree.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/util/CDOBalancedTree.java
@@ -24,6 +24,10 @@ import java.util.LinkedList;
import java.util.Queue;
/**
+ * A utility class that attaches {@link EObject objects} to a {@link CDOResourceFolder folder} rooted, balanced tree such that configurable
+ * capacities for resources per folder and objects per resource are never exceeded. This class is useful if a large number of objects
+ * does not form a tree naturally but long lists would hinder fast lazy loading.
+ *
* @author Eike Stepper
* @since 4.1
*/
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOView.java
index 787b2e7a25..3f9ebe47c0 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOView.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOView.java
@@ -1,804 +1,809 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Simon McDuff - maintenance
- * Victor Roldan Betancort - maintenance
- */
-package org.eclipse.emf.cdo.view;
-
-import org.eclipse.emf.cdo.CDOAdapter;
-import org.eclipse.emf.cdo.CDOInvalidationNotification;
-import org.eclipse.emf.cdo.CDONotification;
-import org.eclipse.emf.cdo.CDOObject;
-import org.eclipse.emf.cdo.CDOObjectReference;
-import org.eclipse.emf.cdo.common.CDOCommonView;
-import org.eclipse.emf.cdo.common.branch.CDOBranch;
-import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
-import org.eclipse.emf.cdo.common.commit.CDOChangeSetData;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
-import org.eclipse.emf.cdo.common.util.CDOException;
-import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
-import org.eclipse.emf.cdo.eresource.CDOResourceNode;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.CDOUpdatable;
-import org.eclipse.emf.cdo.util.CDOUtil;
-import org.eclipse.emf.cdo.util.ReadOnlyException;
-
-import org.eclipse.net4j.util.collection.CloseableIterator;
-import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
-import org.eclipse.net4j.util.event.INotifier;
-import org.eclipse.net4j.util.options.IOptionsEvent;
-import org.eclipse.net4j.util.ref.ReferenceType;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.URIHandler;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-/**
- * A read-only view to the state of the object graph in the repository of the underlying {@link CDOSession session} at a
- * specific {@link #getTimeStamp() time} at a specific {@link #getBranch() branch}.
- * <p>
- * If the {@link #getTimeStamp() time} of a view is {@link CDOBranchPoint#UNSPECIFIED_DATE unspecified} the objects
- * provided and managed by that view always show the latest state the repository graph.
- * <p>
- * Objects that are accessed through this view are immutable for the client. Each attempt to call a mutator on one of
- * these objects or one of their feature lists will result in a {@link ReadOnlyException} being thrown immediately.
- * Mutable objects can be provided by a {@link CDOTransaction transaction}.
- * <p>
- * A view is opened through API of the underlying session like this:
- *
- * <pre>
- * CDOSession session = ...
- * CDOView view = session.openView();
- * ...
- * </pre>
- *
- * @author Eike Stepper
- * @since 2.0
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @apiviz.landmark
- * @apiviz.has {@link CDOView.Options}
- * @apiviz.owns {@link CDOObjectHandler}
- * @apiviz.uses {@link CDOQuery} - - creates
- * @apiviz.uses {@link org.eclipse.emf.cdo.CDOObject} - - manages
- * @apiviz.uses {@link CDOViewAdaptersNotifiedEvent} - - fires
- * @apiviz.uses {@link CDOViewDurabilityChangedEvent} - - fires
- * @apiviz.uses {@link CDOViewInvalidationEvent} - - fires
- * @apiviz.uses {@link CDOViewLocksChangedEvent} - - fires
- * @apiviz.uses {@link CDOViewTargetChangedEvent} - - fires
- */
-public interface CDOView extends CDOCommonView, CDOUpdatable, INotifier
-{
- /**
- * Returns the {@link CDOSession session} this view was opened by.
- *
- * @return The session this view was opened by, or <code>null</code> if this view is closed.
- * @see #close()
- * @see #isClosed()
- * @see CDOSession#openView()
- * @see CDOSession#openTransaction()
- */
- public CDOSession getSession();
-
- /**
- * Returns the {@link CDOViewSet view set} this view is associated with.
- *
- * @return The view set this view is associated with, never <code>null</code>.
- * @see CDOViewSet#getViews()
- */
- public CDOViewSet getViewSet();
-
- /**
- * Returns the {@link ResourceSet resource set} this view is associated with.
- * <p>
- * Same as calling <tt>getViewSet().getResourceSet()</tt>.
- *
- * @see CDOViewSet#getResourceSet()
- */
- public ResourceSet getResourceSet();
-
- public URIHandler getURIHandler();
-
- /**
- * Sets the {@link CDOBranch branch} and the point in (repository) time this view should refer to. {@link CDOObject
- * Objects} provided by this view will be {@link CDORevision#isValid(long) valid} at this time. The special value
- * {@link CDOCommonView#UNSPECIFIED_DATE UNSPECIFIED_DATE} denotes a "floating view" that always shows the latest
- * state of the repository.
- *
- * @return <code>true</code> if the branch point was changed, <code>false</code> otherwise.
- * @since 3.0
- */
- public boolean setBranchPoint(CDOBranch branch, long timeStamp);
-
- /**
- * Same as calling {@link #setBranchPoint(CDOBranch, long) setBranchPoint(branchPoint.getBranch(),
- * branchPoint.getTimeStamp())}.
- *
- * @since 3.0
- */
- public boolean setBranchPoint(CDOBranchPoint branchPoint);
-
- /**
- * Same as calling {@link #setBranchPoint(CDOBranch, long) setBranchPoint(branch, getTimeStamp())}.
- *
- * @since 3.0
- */
- public boolean setBranch(CDOBranch branch);
-
- /**
- * Same as calling {@link #setBranchPoint(CDOBranch, long) setBranchPoint(getBranch(), timeStamp)}.
- *
- * @since 3.0
- */
- public boolean setTimeStamp(long timeStamp);
-
- /**
- * @since 4.0
- */
- public boolean isInvalidationRunnerActive();
-
- /**
- * @see CDOUtil#setLegacyModeDefault(boolean)
- * @since 3.0
- */
- public boolean isLegacyModeEnabled();
-
- /**
- * Returns always <code>false</code>.
- * <p>
- * This method has a special implementation in {@link CDOTransaction} as well.
- *
- * @see CDOTransaction#isDirty()
- */
- public boolean isDirty();
-
- /**
- * Returns always <code>false</code>.
- * <p>
- * This method has a special implementation in {@link CDOTransaction} as well.
- *
- * @see CDOTransaction#hasConflict()
- */
- public boolean hasConflict();
-
- /**
- * Returns <code>true</code> if a resource with the given path exists in the repository, <code>false</code>.
- *
- * @see #getResource(String, boolean)
- */
- public boolean hasResource(String path);
-
- /**
- * @see ResourceSet#getResource(URI, boolean)
- */
- public CDOResource getResource(String path, boolean loadOnDemand);
-
- /**
- * Same as {@link #getResource(String, boolean) getResource(String, true)}.
- *
- * @see ResourceSet#getResource(URI, boolean)
- */
- public CDOResource getResource(String path);
-
- /**
- * Returns the resource node with the given path.
- *
- * @return never <code>null</code>.
- * @throws CDOException
- * if no such resource node exists.
- */
- public CDOResourceNode getResourceNode(String path) throws CDOException;
-
- /**
- * Returns the root resource of the repository.
- * <p>
- * The root resource is a special resource with only {@link CDOResourceNode CDOResourceNodes} in its contents list.
- * You can use it as the main entry into the new resource and folder structure.
- */
- public CDOResource getRootResource();
-
- /**
- * Returns a list of the resources in the given folder with a name equal to or starting with the value of the name
- * parameter.
- *
- * @param folder
- * The folder to search in, or <code>null</code> for top level resource nodes.
- * @param name
- * the name or prefix of the resource nodes to return.
- * @param exactMatch
- * <code>true</code> if the complete name of the resource must match, <code>false</code> if only a common
- * prefix of the name must match.
- */
- public List<CDOResourceNode> queryResources(CDOResourceFolder folder, String name, boolean exactMatch);
-
- /**
- * Returns an iterator over the resources in the given folder with a name equal to or starting with the value of the
- * name parameter. The underlying query will be executed asynchronously.
- *
- * @param folder
- * The folder to search in, or <code>null</code> for top level resource nodes.
- * @param name
- * the name or prefix of the resource nodes to return.
- * @param exactMatch
- * <code>true</code> if the complete name of the resource must match, <code>false</code> if only a common
- * prefix of the name must match.
- */
- public CloseableIterator<CDOResourceNode> queryResourcesAsync(CDOResourceFolder folder, String name,
- boolean exactMatch);
-
- /**
- * Returns a list of {@link CDOObjectReference object references} that represent the cross references to the specified
- * target object.
- *
- * @param targetObject
- * The target object that referencing objects are requested for.
- * @param sourceReferences
- * The reference features that referencing objects are requested for, or an empty array if all reference
- * features are to be used in the request.
- * @since 4.0
- * @see CDOView#queryXRefs(Set, EReference...)
- * @see CDOView#queryXRefsAsync(Set, EReference...)
- */
- public List<CDOObjectReference> queryXRefs(CDOObject targetObject, EReference... sourceReferences);
-
- /**
- * Returns a list of {@link CDOObjectReference object references} that represent the cross references to the specified
- * target objects.
- *
- * @param targetObjects
- * The set of target objects that referencing objects are requested for.
- * @param sourceReferences
- * The reference features that referencing objects are requested for, or an empty array if all reference
- * features are to be used in the request.
- * @since 3.0
- * @see CDOView#queryXRefs(CDOObject, EReference...)
- * @see CDOView#queryXRefsAsync(Set, EReference...)
- */
- public List<CDOObjectReference> queryXRefs(Set<CDOObject> targetObjects, EReference... sourceReferences);
-
- /**
- * Returns an iterator over the {@link CDOObjectReference object references} that represent the cross references to
- * the specified target objects. The underlying query will be executed asynchronously.
- *
- * @param targetObjects
- * The set of target objects that referencing objects are requested for.
- * @param sourceReferences
- * The reference features that referencing objects are requested for, or an empty array if all reference
- * features are to be used in the request.
- * @since 3.0
- * @see CDOView#queryXRefs(CDOObject, EReference...)
- * @see CDOView#queryXRefs(Set, EReference...)
- */
- public CloseableIterator<CDOObjectReference> queryXRefsAsync(Set<CDOObject> targetObjects,
- EReference... sourceReferences);
-
- /**
- * Returns the object for the given CDOID.
- *
- * @param loadOnDemand
- * whether to create and load the object, if it doesn't already exist.
- * @return the object resolved by the CDOID if the id is not <code>null</code>, or <code>null</code> if there isn't
- * one and loadOnDemand is <code>false</code>.
- */
- public CDOObject getObject(CDOID id, boolean loadOnDemand);
-
- /**
- * Returns the object for the given CDOID.
- * <p>
- * Same as <code>getObject(id, true)</code>.
- *
- * @see #getObject(CDOID, boolean)
- */
- public CDOObject getObject(CDOID id);
-
- /**
- * Takes an object from a (possibly) different view and <em>contextifies</em> it for the usage with this view.
- * <ul>
- * <li>If the given object is contained in this view it is returned unmodified.
- * <li>If the given object can not be cast to {@link CDOObject} it is returned unmodified.
- * <li>If the view of the given object is contained in a different session an <code>IllegalArgumentException</code> is
- * thrown.
- * <li>If <code>null</code> is passed <code>null</code> is returned.
- * </ul>
- */
- public <T extends EObject> T getObject(T objectFromDifferentView);
-
- /**
- * Returns <code>true</code> if an {@link CDOObject object} with the given {@link CDOID id} is currently registered in
- * this view, <code>false</code> otherwise.
- */
- public boolean isObjectRegistered(CDOID id);
-
- /**
- * Reloads the given {@link CDOObject objects} from the repository.
- */
- public int reload(CDOObject... objects);
-
- /**
- * Locks the given objects. Once the objects are locked, they will not be changed remotely or go in conflict state.
- *
- * @since 3.0
- */
- public void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout)
- throws InterruptedException;
-
- public void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout, boolean recursive)
- throws InterruptedException;
-
- /**
- * Unlocks the given locked objects of this view.
- */
- public void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType);
-
- public void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType, boolean recursive);
-
- /**
- * Unlocks all locked objects of this view.
- *
- * @since 2.0
- */
- public void unlockObjects();
-
- /**
- * @since 4.0
- * @deprecated Use {@link #enableDurableLocking()} instead or {@link #disableDurableLocking(boolean)}, respectively.
- */
- @Deprecated
- public String enableDurableLocking(boolean enable);
-
- /**
- * Enables the storage of all information that's needed to {@link CDOSession#openView(String) reopen} this view at a
- * later point in time. This information includes the {@link CDOBranchPoint branch point}, the user ID of the
- * {@link CDOSession session}, whether it's a read-only view or a {@link CDOTransaction transaction} and all the locks
- * that are acquired or will be acquired while durable locking is enabled.
- *
- * @see CDOSession#openView(String)
- * @see CDOSession#openView(String, ResourceSet)
- * @see CDOSession#openTransaction(String)
- * @see CDOSession#openTransaction(String, ResourceSet)
- * @see #disableDurableLocking(boolean)
- * @since 4.1
- */
- public String enableDurableLocking();
-
- /**
- * Disables the storage of all information that's needed to {@link CDOSession#openView(String) reopen} this view at a
- * later point in time. If such information is stored when this method is called it is removed. Note that locks
- * acquired by this view are only released if <code>true</code> is passed to the <code>releaseLocks</code> parameter.
- *
- * @see #enableDurableLocking()
- * @since 4.1
- */
- public void disableDurableLocking(boolean releaseLocks);
-
- /**
- * @since 3.0
- */
- public void addObjectHandler(CDOObjectHandler handler);
-
- /**
- * @since 3.0
- */
- public void removeObjectHandler(CDOObjectHandler handler);
-
- /**
- * @since 3.0
- */
- public CDOObjectHandler[] getObjectHandlers();
-
- /**
- * Same as <code>createQuery(language, queryString, null)</code>.
- *
- * @see #createQuery(String, String, Object)
- * @since 2.0
- */
- public CDOQuery createQuery(String language, String queryString);
-
- /**
- * @since 4.0
- */
- public CDOQuery createQuery(String language, String queryString, Object context);
-
- /**
- * @since 4.0
- */
- public CDOChangeSetData compareRevisions(CDOBranchPoint source);
-
- /**
- * @since 2.0
- */
- public Options options();
-
- /**
- * Encapsulates a set of notifying {@link CDOView view} configuration options.
- *
- * @author Simon McDuff
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @apiviz.has {@link org.eclipse.net4j.util.ref.ReferenceType} oneway - - cacheReferences
- * @apiviz.has {@link org.eclipse.emf.cdo.view.CDOInvalidationPolicy}
- * @apiviz.composedOf {@link org.eclipse.emf.cdo.view.CDOAdapterPolicy} - - changeSubscriptions
- * @apiviz.has {@link org.eclipse.emf.cdo.view.CDOAdapterPolicy} oneway - - strongReferences
- * @apiviz.has {@link org.eclipse.emf.cdo.view.CDOStaleReferencePolicy} oneway - - staleReferences
- * @apiviz.has {@link org.eclipse.emf.cdo.view.CDORevisionPrefetchingPolicy}
- * @apiviz.uses {@link CDOView.Options.CacheReferenceTypeEvent} - - fires
- * @apiviz.uses {@link CDOView.Options.StrongReferencePolicyEvent} - - fires
- * @apiviz.uses {@link CDOView.Options.StaleReferencePolicyEvent} - - fires
- * @apiviz.uses {@link CDOView.Options.ChangeSubscriptionPoliciesEvent} - - fires
- * @apiviz.uses {@link CDOView.Options.InvalidationPolicyEvent} - - fires
- * @apiviz.uses {@link CDOView.Options.InvalidationNotificationEvent} - - fires
- * @apiviz.uses {@link CDOView.Options.RevisionPrefetchingPolicyEvent} - - fires
- */
- public interface Options extends org.eclipse.emf.cdo.common.CDOCommonView.Options
- {
- /**
- * Returns the {@link CDOView view} of this options object.
- *
- * @since 4.0
- */
- public CDOView getContainer();
-
- /**
- * @since 3.0
- */
- public static final int DEFAULT_REVISION_PREFETCHING = 100;
-
- public static final int NO_REVISION_PREFETCHING = 1;
-
- /**
- * Returns <code>true</code> if the {@link CDOObject objects} in this view will notify their
- * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>loaded</em>,
- * <code>false</code> otherwise.
- *
- * @since 4.1
- */
- public boolean isLoadNotificationEnabled();
-
- /**
- * Specifies whether the {@link CDOObject objects} in this view will notify their
- * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>loaded</em> or not.
- *
- * @since 4.1
- */
- public void setLoadNotificationEnabled(boolean enabled);
-
- /**
- * Returns <code>true</code> if the {@link CDOObject objects} in this view will notify their
- * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>detached</em> (due to
- * remote changes), <code>false</code> otherwise.
- *
- * @see CDONotification#DETACH_OBJECT
- * @since 4.1
- */
- public boolean isDetachmentNotificationEnabled();
-
- /**
- * Specifies whether the {@link CDOObject objects} in this view will notify their
- * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>detached</em> (due to
- * remote changes) or not.
- *
- * @see CDONotification#DETACH_OBJECT
- * @since 4.1
- */
- public void setDetachmentNotificationEnabled(boolean enabled);
-
- /**
- * Returns <code>true</code> if the {@link CDOObject objects} in this view will notify their
- * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>invalidated</em> (due to
- * remote changes), <code>false</code> otherwise.
- *
- * @see CDOInvalidationNotification
- */
- public boolean isInvalidationNotificationEnabled();
-
- /**
- * Specifies whether the {@link CDOObject objects} in this view will notify their
- * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>invalidated</em> (due to
- * remote changes) or not.
- *
- * @see CDOInvalidationNotification
- */
- public void setInvalidationNotificationEnabled(boolean enabled);
-
- /**
- * @since 3.0
- */
- public CDOInvalidationPolicy getInvalidationPolicy();
-
- /**
- * @since 3.0
- */
- public void setInvalidationPolicy(CDOInvalidationPolicy policy);
-
- /**
- * Returns the current set of {@link CDOAdapterPolicy change subscription policies}.
- *
- * @return The current set of change subscription policies, never <code>null</code>.
- * @see #addChangeSubscriptionPolicy(CDOAdapterPolicy)
- */
- public CDOAdapterPolicy[] getChangeSubscriptionPolicies();
-
- /**
- * Adds a change subscription policy to this view.
- * <p>
- * To activate a policy, you must do the following: <br>
- * <code>view.options().addChangeSubscriptionPolicy(CDOChangeSubscriptionPolicy.ALL);</code>
- * <p>
- * To register an object, you must add an adapter to the object in which you are interested:<br>
- * <code>eObject.eAdapters().add(myAdapter);</code>
- * <p>
- * By activating this feature, each object having at least one adapter that matches the current policy will be
- * registered with the server and will be notified for each change occurring in the scope of any other transaction.
- * <p>
- * {@link CDOAdapterPolicy#NONE} - Ignored. <br>
- * {@link CDOAdapterPolicy#ALL} - Enabled for all adapters used.<br>
- * {@link CDOAdapterPolicy#CDO} - Enabled only for adapters that implement {@link CDOAdapter}. <br>
- * Any other class that implement {@link CDOAdapterPolicy} will enable for whatever rules defined in that class.
- * <br>
- * <p>
- * If <code>myAdapter</code> in the above example matches the current policy, <code>eObject</code> will be
- * registered with the server and you will receive all changes from other transaction.
- * <p>
- * When the policy is changed all objects in the cache will automatically be recalculated.
- * <p>
- * You can subscribe to temporary objects. Even if you cannot receive notifications from other
- * {@link CDOTransaction} for these because they are only local to you, at commit time these objects will be
- * registered automatically.
- *
- * @see #removeChangeSubscriptionPolicy(CDOAdapterPolicy)
- * @see #getChangeSubscriptionPolicies()
- */
- public void addChangeSubscriptionPolicy(CDOAdapterPolicy policy);
-
- /**
- * Removes a change subscription policy from this view.
- *
- * @see #addChangeSubscriptionPolicy(CDOAdapterPolicy)
- * @see #getChangeSubscriptionPolicies()
- */
- public void removeChangeSubscriptionPolicy(CDOAdapterPolicy policy);
-
- /**
- * Returns the reference type to be used in the internal object cache.
- *
- * @return Either {@link ReferenceType#STRONG STRONG}, {@link ReferenceType#SOFT SOFT} or {@link ReferenceType#WEAK
- * WEAK}.
- */
- public ReferenceType getCacheReferenceType();
-
- /**
- * Sets the reference type to be used in the internal object cache to either {@link ReferenceType#STRONG STRONG},
- * {@link ReferenceType#SOFT SOFT} or {@link ReferenceType#WEAK WEAK}. If <code>null</code> is passed the default
- * reference type {@link ReferenceType#SOFT SOFT} is set. If the given reference type does not differ from the one
- * being currently set the new value is ignored and <code>false</code> is returned. Otherwise existing object
- * references are converted to the new type and <code>true</code> is returned.
- */
- public boolean setCacheReferenceType(ReferenceType referenceType);
-
- // TODO
- public CDOAdapterPolicy getStrongReferencePolicy();
-
- /**
- * Sets the reference type to be used when an adapter is used to an object.
- * <p>
- * When <code>CDOView.setStrongReference(CDOAdapterPolicy.ALL)</code> is used, it is possible that the target object
- * will be GC. In that case, the adapter will never received notifications. By Default the value is at
- * <code>CDOAdapterPolicy.ALL</code>
- */
- public void setStrongReferencePolicy(CDOAdapterPolicy policy);
-
- /**
- * Returns the CDOStaleReferencePolicy in use.
- *
- * @since 3.0
- * @deprecated Use {@link #getStaleReferencePolicy()}
- */
- @Deprecated
- public CDOStaleReferencePolicy getStaleReferenceBehaviour();
-
- /**
- * Sets a policy on how to deal with stale references.
- *
- * @since 3.0
- * @deprecated Use {@link #setStaleReferencePolicy(CDOStaleReferencePolicy)}
- */
- @Deprecated
- public void setStaleReferenceBehaviour(CDOStaleReferencePolicy policy);
-
- /**
- * Returns the CDOStaleReferencePolicy in use.
- *
- * @since 4.1
- */
- public CDOStaleReferencePolicy getStaleReferencePolicy();
-
- /**
- * Sets a policy on how to deal with stale references.
- *
- * @since 4.1
- */
- public void setStaleReferencePolicy(CDOStaleReferencePolicy policy);
-
- /**
- * Returns the CDORevisionPrefetchingPolicy in use.
- */
- public CDORevisionPrefetchingPolicy getRevisionPrefetchingPolicy();
-
- /**
- * The CDORevisionPrefetchingPolicy feature of the CDOView allows CDO users to fetch many objects at a time.
- * <p>
- * The difference between the CDOCollectionLoadingPolicy feature and the CDORevisionPrefetchingPolicy feature is
- * subtle. The CDOCollectionLoadingPolicy feature determines how and when to fetch CDOIDs, while the
- * CDORevisionPrefetchingPolicy feature determines how and when to resolve CDOIDs (i.e. fetch the target objects).
- * <p>
- * <code>view.options().setRevisionPrefetchingPolicy (CDONet4jUtil.createRevisionPrefetchingPolicy(10));</code>
- * <p>
- * The end-user could provide its own implementation of the CDORevisionPrefetchingPolicy interface.
- */
- public void setRevisionPrefetchingPolicy(CDORevisionPrefetchingPolicy prefetchingPolicy);
-
- /**
- * @since 4.1
- */
- public CDOFeatureAnalyzer getFeatureAnalyzer();
-
- /**
- * @since 4.1
- */
- public void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer);
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setLoadNotificationEnabled(boolean) load notification enabled} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @since 4.1
- */
- public interface LoadNotificationEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setDetachmentNotificationEnabled(boolean) detachment notification enabled} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @since 4.1
- */
- public interface DetachmenNotificationEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setInvalidationNotificationEnabled(boolean) invalidation notification enabled} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
- public interface InvalidationNotificationEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setInvalidationPolicy(CDOInvalidationPolicy) invalidation policy} option has changed.
- *
- * @author Eike Stepper
- * @since 3.0
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
- public interface InvalidationPolicyEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#addChangeSubscriptionPolicy(CDOAdapterPolicy) change subscription policies} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
- public interface ChangeSubscriptionPoliciesEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setCacheReferenceType(ReferenceType) cache reference type} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
- public interface CacheReferenceTypeEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setStrongReferencePolicy(CDOAdapterPolicy) strong reference policy} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @since 4.0
- */
- public interface StrongReferencePolicyEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setStrongReferencePolicy(CDOAdapterPolicy) strong reference policy} option has changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @deprecated Use {@link StrongReferencePolicyEvent} instead.
- * @apiviz.exclude
- */
- @Deprecated
- public interface ReferencePolicyEvent extends StrongReferencePolicyEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setStaleReferenceBehaviour(CDOStaleReferencePolicy) stale reference type} option has changed.
- *
- * @since 3.0
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
- public interface StaleReferencePolicyEvent extends IOptionsEvent
- {
- }
-
- /**
- * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
- * {@link Options#setRevisionPrefetchingPolicy(CDORevisionPrefetchingPolicy) revision prefetching policy} option has
- * changed.
- *
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
- public interface RevisionPrefetchingPolicyEvent extends IOptionsEvent
- {
- }
-
- /**
- * @author Eike Stepper
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @since 4.1
- */
- public interface FeatureAnalyzerEvent extends IOptionsEvent
- {
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Simon McDuff - maintenance
+ * Victor Roldan Betancort - maintenance
+ */
+package org.eclipse.emf.cdo.view;
+
+import org.eclipse.emf.cdo.CDOAdapter;
+import org.eclipse.emf.cdo.CDOInvalidationNotification;
+import org.eclipse.emf.cdo.CDONotification;
+import org.eclipse.emf.cdo.CDOObject;
+import org.eclipse.emf.cdo.CDOObjectReference;
+import org.eclipse.emf.cdo.common.CDOCommonView;
+import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
+import org.eclipse.emf.cdo.common.commit.CDOChangeSetData;
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.util.CDOException;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
+import org.eclipse.emf.cdo.eresource.CDOResourceNode;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOUpdatable;
+import org.eclipse.emf.cdo.util.CDOUtil;
+import org.eclipse.emf.cdo.util.ReadOnlyException;
+
+import org.eclipse.net4j.util.collection.CloseableIterator;
+import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
+import org.eclipse.net4j.util.event.INotifier;
+import org.eclipse.net4j.util.options.IOptionsEvent;
+import org.eclipse.net4j.util.ref.ReferenceType;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.URIHandler;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A read-only view to the state of the object graph in the repository of the underlying {@link CDOSession session} at a
+ * specific {@link #getTimeStamp() time} at a specific {@link #getBranch() branch}.
+ * <p>
+ * If the {@link #getTimeStamp() time} of a view is {@link CDOBranchPoint#UNSPECIFIED_DATE unspecified} the objects
+ * provided and managed by that view always show the latest state the repository graph.
+ * <p>
+ * Objects that are accessed through this view are immutable for the client. Each attempt to call a mutator on one of
+ * these objects or one of their feature lists will result in a {@link ReadOnlyException} being thrown immediately.
+ * Mutable objects can be provided by a {@link CDOTransaction transaction}.
+ * <p>
+ * A view is opened through API of the underlying session like this:
+ *
+ * <pre>
+ * CDOSession session = ...
+ * CDOView view = session.openView();
+ * ...
+ * </pre>
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @apiviz.landmark
+ * @apiviz.has {@link CDOView.Options}
+ * @apiviz.owns {@link CDOObjectHandler}
+ * @apiviz.uses {@link CDOQuery} - - creates
+ * @apiviz.uses {@link org.eclipse.emf.cdo.CDOObject} - - manages
+ * @apiviz.uses {@link CDOViewAdaptersNotifiedEvent} - - fires
+ * @apiviz.uses {@link CDOViewDurabilityChangedEvent} - - fires
+ * @apiviz.uses {@link CDOViewInvalidationEvent} - - fires
+ * @apiviz.uses {@link CDOViewLocksChangedEvent} - - fires
+ * @apiviz.uses {@link CDOViewTargetChangedEvent} - - fires
+ */
+public interface CDOView extends CDOCommonView, CDOUpdatable, INotifier
+{
+ /**
+ * Returns the {@link CDOSession session} this view was opened by.
+ *
+ * @return The session this view was opened by, or <code>null</code> if this view is closed.
+ * @see #close()
+ * @see #isClosed()
+ * @see CDOSession#openView()
+ * @see CDOSession#openTransaction()
+ */
+ public CDOSession getSession();
+
+ /**
+ * Returns the {@link CDOViewSet view set} this view is associated with.
+ *
+ * @return The view set this view is associated with, never <code>null</code>.
+ * @see CDOViewSet#getViews()
+ */
+ public CDOViewSet getViewSet();
+
+ /**
+ * Returns the {@link ResourceSet resource set} this view is associated with.
+ * <p>
+ * Same as calling <tt>getViewSet().getResourceSet()</tt>.
+ *
+ * @see CDOViewSet#getResourceSet()
+ */
+ public ResourceSet getResourceSet();
+
+ public URIHandler getURIHandler();
+
+ /**
+ * Sets the {@link CDOBranch branch} and the point in (repository) time this view should refer to. {@link CDOObject
+ * Objects} provided by this view will be {@link CDORevision#isValid(long) valid} at this time. The special value
+ * {@link CDOCommonView#UNSPECIFIED_DATE UNSPECIFIED_DATE} denotes a "floating view" that always shows the latest
+ * state of the repository.
+ *
+ * @return <code>true</code> if the branch point was changed, <code>false</code> otherwise.
+ * @since 3.0
+ */
+ public boolean setBranchPoint(CDOBranch branch, long timeStamp);
+
+ /**
+ * Same as calling {@link #setBranchPoint(CDOBranch, long) setBranchPoint(branchPoint.getBranch(),
+ * branchPoint.getTimeStamp())}.
+ *
+ * @since 3.0
+ */
+ public boolean setBranchPoint(CDOBranchPoint branchPoint);
+
+ /**
+ * Same as calling {@link #setBranchPoint(CDOBranch, long) setBranchPoint(branch, getTimeStamp())}.
+ *
+ * @since 3.0
+ */
+ public boolean setBranch(CDOBranch branch);
+
+ /**
+ * Same as calling {@link #setBranchPoint(CDOBranch, long) setBranchPoint(getBranch(), timeStamp)}.
+ *
+ * @since 3.0
+ */
+ public boolean setTimeStamp(long timeStamp);
+
+ /**
+ * @since 4.0
+ */
+ public boolean isInvalidationRunnerActive();
+
+ /**
+ * @see CDOUtil#setLegacyModeDefault(boolean)
+ * @since 3.0
+ */
+ public boolean isLegacyModeEnabled();
+
+ /**
+ * Returns always <code>false</code>.
+ * <p>
+ * This method has a special implementation in {@link CDOTransaction} as well.
+ *
+ * @see CDOTransaction#isDirty()
+ */
+ public boolean isDirty();
+
+ /**
+ * Returns always <code>false</code>.
+ * <p>
+ * This method has a special implementation in {@link CDOTransaction} as well.
+ *
+ * @see CDOTransaction#hasConflict()
+ */
+ public boolean hasConflict();
+
+ /**
+ * Returns <code>true</code> if a resource with the given path exists in the repository, <code>false</code>.
+ *
+ * @see #getResource(String, boolean)
+ */
+ public boolean hasResource(String path);
+
+ /**
+ * @see ResourceSet#getResource(URI, boolean)
+ */
+ public CDOResource getResource(String path, boolean loadOnDemand);
+
+ /**
+ * Same as {@link #getResource(String, boolean) getResource(String, true)}.
+ *
+ * @see ResourceSet#getResource(URI, boolean)
+ */
+ public CDOResource getResource(String path);
+
+ /**
+ * Returns the resource node with the given path.
+ *
+ * @return never <code>null</code>.
+ * @throws CDOException
+ * if no such resource node exists.
+ */
+ public CDOResourceNode getResourceNode(String path) throws CDOException;
+
+ /**
+ * Returns the root resource of the repository.
+ * <p>
+ * The root resource is a special resource with only {@link CDOResourceNode CDOResourceNodes} in its contents list.
+ * You can use it as the main entry into the new resource and folder structure.
+ */
+ public CDOResource getRootResource();
+
+ /**
+ * Returns a list of the resources in the given folder with a name equal to or starting with the value of the name
+ * parameter.
+ *
+ * @param folder
+ * The folder to search in, or <code>null</code> for top level resource nodes.
+ * @param name
+ * the name or prefix of the resource nodes to return.
+ * @param exactMatch
+ * <code>true</code> if the complete name of the resource must match, <code>false</code> if only a common
+ * prefix of the name must match.
+ */
+ public List<CDOResourceNode> queryResources(CDOResourceFolder folder, String name, boolean exactMatch);
+
+ /**
+ * Returns an iterator over the resources in the given folder with a name equal to or starting with the value of the
+ * name parameter. The underlying query will be executed asynchronously.
+ *
+ * @param folder
+ * The folder to search in, or <code>null</code> for top level resource nodes.
+ * @param name
+ * the name or prefix of the resource nodes to return.
+ * @param exactMatch
+ * <code>true</code> if the complete name of the resource must match, <code>false</code> if only a common
+ * prefix of the name must match.
+ */
+ public CloseableIterator<CDOResourceNode> queryResourcesAsync(CDOResourceFolder folder, String name,
+ boolean exactMatch);
+
+ /**
+ * Returns a list of {@link CDOObjectReference object references} that represent the cross references to the specified
+ * target object.
+ *
+ * @param targetObject
+ * The target object that referencing objects are requested for.
+ * @param sourceReferences
+ * The reference features that referencing objects are requested for, or an empty array if all reference
+ * features are to be used in the request.
+ * @since 4.0
+ * @see CDOView#queryXRefs(Set, EReference...)
+ * @see CDOView#queryXRefsAsync(Set, EReference...)
+ */
+ public List<CDOObjectReference> queryXRefs(CDOObject targetObject, EReference... sourceReferences);
+
+ /**
+ * Returns a list of {@link CDOObjectReference object references} that represent the cross references to the specified
+ * target objects.
+ *
+ * @param targetObjects
+ * The set of target objects that referencing objects are requested for.
+ * @param sourceReferences
+ * The reference features that referencing objects are requested for, or an empty array if all reference
+ * features are to be used in the request.
+ * @since 3.0
+ * @see CDOView#queryXRefs(CDOObject, EReference...)
+ * @see CDOView#queryXRefsAsync(Set, EReference...)
+ */
+ public List<CDOObjectReference> queryXRefs(Set<CDOObject> targetObjects, EReference... sourceReferences);
+
+ /**
+ * Returns an iterator over the {@link CDOObjectReference object references} that represent the cross references to
+ * the specified target objects. The underlying query will be executed asynchronously.
+ *
+ * @param targetObjects
+ * The set of target objects that referencing objects are requested for.
+ * @param sourceReferences
+ * The reference features that referencing objects are requested for, or an empty array if all reference
+ * features are to be used in the request.
+ * @since 3.0
+ * @see CDOView#queryXRefs(CDOObject, EReference...)
+ * @see CDOView#queryXRefs(Set, EReference...)
+ */
+ public CloseableIterator<CDOObjectReference> queryXRefsAsync(Set<CDOObject> targetObjects,
+ EReference... sourceReferences);
+
+ /**
+ * Returns the object for the given CDOID.
+ *
+ * @param loadOnDemand
+ * whether to create and load the object, if it doesn't already exist.
+ * @return the object resolved by the CDOID if the id is not <code>null</code>, or <code>null</code> if there isn't
+ * one and loadOnDemand is <code>false</code>.
+ */
+ public CDOObject getObject(CDOID id, boolean loadOnDemand);
+
+ /**
+ * Returns the object for the given CDOID.
+ * <p>
+ * Same as <code>getObject(id, true)</code>.
+ *
+ * @see #getObject(CDOID, boolean)
+ */
+ public CDOObject getObject(CDOID id);
+
+ /**
+ * Takes an object from a (possibly) different view and <em>contextifies</em> it for the usage with this view.
+ * <ul>
+ * <li>If the given object is contained in this view it is returned unmodified.
+ * <li>If the given object can not be cast to {@link CDOObject} it is returned unmodified.
+ * <li>If the view of the given object is contained in a different session an <code>IllegalArgumentException</code> is
+ * thrown.
+ * <li>If <code>null</code> is passed <code>null</code> is returned.
+ * </ul>
+ */
+ public <T extends EObject> T getObject(T objectFromDifferentView);
+
+ /**
+ * Returns <code>true</code> if an {@link CDOObject object} with the given {@link CDOID id} is currently registered in
+ * this view, <code>false</code> otherwise.
+ */
+ public boolean isObjectRegistered(CDOID id);
+
+ /**
+ * Reloads the given {@link CDOObject objects} from the repository.
+ */
+ public int reload(CDOObject... objects);
+
+ /**
+ * Locks the given objects. Once the objects are locked, they will not be changed remotely or go in conflict state.
+ *
+ * @since 3.0
+ */
+ public void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout)
+ throws InterruptedException;
+
+ public void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout, boolean recursive)
+ throws InterruptedException;
+
+ /**
+ * Unlocks the given locked objects of this view.
+ */
+ public void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType);
+
+ public void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType, boolean recursive);
+
+ /**
+ * Unlocks all locked objects of this view.
+ *
+ * @since 2.0
+ */
+ public void unlockObjects();
+
+ /**
+ * @since 4.0
+ * @deprecated Use {@link #enableDurableLocking()} instead or {@link #disableDurableLocking(boolean)}, respectively.
+ */
+ @Deprecated
+ public String enableDurableLocking(boolean enable);
+
+ /**
+ * Enables the storage of all information that's needed to {@link CDOSession#openView(String) reopen} this view at a
+ * later point in time. This information includes the {@link CDOBranchPoint branch point}, the user ID of the
+ * {@link CDOSession session}, whether it's a read-only view or a {@link CDOTransaction transaction} and all the locks
+ * that are acquired or will be acquired while durable locking is enabled.
+ *
+ * @see CDOSession#openView(String)
+ * @see CDOSession#openView(String, ResourceSet)
+ * @see CDOSession#openTransaction(String)
+ * @see CDOSession#openTransaction(String, ResourceSet)
+ * @see #disableDurableLocking(boolean)
+ * @since 4.1
+ */
+ public String enableDurableLocking();
+
+ /**
+ * Disables the storage of all information that's needed to {@link CDOSession#openView(String) reopen} this view at a
+ * later point in time. If such information is stored when this method is called it is removed. Note that locks
+ * acquired by this view are only released if <code>true</code> is passed to the <code>releaseLocks</code> parameter.
+ *
+ * @see #enableDurableLocking()
+ * @since 4.1
+ */
+ public void disableDurableLocking(boolean releaseLocks);
+
+ /**
+ * @since 3.0
+ */
+ public void addObjectHandler(CDOObjectHandler handler);
+
+ /**
+ * @since 3.0
+ */
+ public void removeObjectHandler(CDOObjectHandler handler);
+
+ /**
+ * @since 3.0
+ */
+ public CDOObjectHandler[] getObjectHandlers();
+
+ /**
+ * Same as <code>createQuery(language, queryString, null)</code>.
+ *
+ * @see #createQuery(String, String, Object)
+ * @since 2.0
+ */
+ public CDOQuery createQuery(String language, String queryString);
+
+ /**
+ * @since 4.0
+ */
+ public CDOQuery createQuery(String language, String queryString, Object context);
+
+ /**
+ * @since 4.0
+ */
+ public CDOChangeSetData compareRevisions(CDOBranchPoint source);
+
+ /**
+ * @since 2.0
+ */
+ public Options options();
+
+ /**
+ * Encapsulates a set of notifying {@link CDOView view} configuration options.
+ *
+ * @author Simon McDuff
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @apiviz.has {@link org.eclipse.net4j.util.ref.ReferenceType} oneway - - cacheReferences
+ * @apiviz.has {@link org.eclipse.emf.cdo.view.CDOInvalidationPolicy}
+ * @apiviz.composedOf {@link org.eclipse.emf.cdo.view.CDOAdapterPolicy} - - changeSubscriptions
+ * @apiviz.has {@link org.eclipse.emf.cdo.view.CDOAdapterPolicy} oneway - - strongReferences
+ * @apiviz.has {@link org.eclipse.emf.cdo.view.CDOStaleReferencePolicy} oneway - - staleReferences
+ * @apiviz.has {@link org.eclipse.emf.cdo.view.CDORevisionPrefetchingPolicy}
+ * @apiviz.uses {@link CDOView.Options.CacheReferenceTypeEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.StrongReferencePolicyEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.StaleReferencePolicyEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.ChangeSubscriptionPoliciesEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.InvalidationPolicyEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.InvalidationNotificationEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.RevisionPrefetchingPolicyEvent} - - fires
+ * @apiviz.uses {@link CDOView.Options.FeatureAnalyzerEvent} - - fires
+ */
+ public interface Options extends org.eclipse.emf.cdo.common.CDOCommonView.Options
+ {
+ /**
+ * Returns the {@link CDOView view} of this options object.
+ *
+ * @since 4.0
+ */
+ public CDOView getContainer();
+
+ /**
+ * @since 3.0
+ */
+ public static final int DEFAULT_REVISION_PREFETCHING = 100;
+
+ public static final int NO_REVISION_PREFETCHING = 1;
+
+ /**
+ * Returns <code>true</code> if the {@link CDOObject objects} in this view will notify their
+ * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>loaded</em>,
+ * <code>false</code> otherwise.
+ *
+ * @since 4.1
+ */
+ public boolean isLoadNotificationEnabled();
+
+ /**
+ * Specifies whether the {@link CDOObject objects} in this view will notify their
+ * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>loaded</em> or not.
+ *
+ * @since 4.1
+ */
+ public void setLoadNotificationEnabled(boolean enabled);
+
+ /**
+ * Returns <code>true</code> if the {@link CDOObject objects} in this view will notify their
+ * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>detached</em> (due to
+ * remote changes), <code>false</code> otherwise.
+ *
+ * @see CDONotification#DETACH_OBJECT
+ * @since 4.1
+ */
+ public boolean isDetachmentNotificationEnabled();
+
+ /**
+ * Specifies whether the {@link CDOObject objects} in this view will notify their
+ * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>detached</em> (due to
+ * remote changes) or not.
+ *
+ * @see CDONotification#DETACH_OBJECT
+ * @since 4.1
+ */
+ public void setDetachmentNotificationEnabled(boolean enabled);
+
+ /**
+ * Returns <code>true</code> if the {@link CDOObject objects} in this view will notify their
+ * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>invalidated</em> (due to
+ * remote changes), <code>false</code> otherwise.
+ *
+ * @see CDOInvalidationNotification
+ */
+ public boolean isInvalidationNotificationEnabled();
+
+ /**
+ * Specifies whether the {@link CDOObject objects} in this view will notify their
+ * {@link org.eclipse.emf.common.notify.Adapter adapters} about the fact that they are <em>invalidated</em> (due to
+ * remote changes) or not.
+ *
+ * @see CDOInvalidationNotification
+ */
+ public void setInvalidationNotificationEnabled(boolean enabled);
+
+ /**
+ * @since 3.0
+ */
+ public CDOInvalidationPolicy getInvalidationPolicy();
+
+ /**
+ * @since 3.0
+ */
+ public void setInvalidationPolicy(CDOInvalidationPolicy policy);
+
+ /**
+ * Returns the current set of {@link CDOAdapterPolicy change subscription policies}.
+ *
+ * @return The current set of change subscription policies, never <code>null</code>.
+ * @see #addChangeSubscriptionPolicy(CDOAdapterPolicy)
+ */
+ public CDOAdapterPolicy[] getChangeSubscriptionPolicies();
+
+ /**
+ * Adds a change subscription policy to this view.
+ * <p>
+ * To activate a policy, you must do the following: <br>
+ * <code>view.options().addChangeSubscriptionPolicy(CDOChangeSubscriptionPolicy.ALL);</code>
+ * <p>
+ * To register an object, you must add an adapter to the object in which you are interested:<br>
+ * <code>eObject.eAdapters().add(myAdapter);</code>
+ * <p>
+ * By activating this feature, each object having at least one adapter that matches the current policy will be
+ * registered with the server and will be notified for each change occurring in the scope of any other transaction.
+ * <p>
+ * {@link CDOAdapterPolicy#NONE} - Ignored. <br>
+ * {@link CDOAdapterPolicy#ALL} - Enabled for all adapters used.<br>
+ * {@link CDOAdapterPolicy#CDO} - Enabled only for adapters that implement {@link CDOAdapter}. <br>
+ * Any other class that implement {@link CDOAdapterPolicy} will enable for whatever rules defined in that class.
+ * <br>
+ * <p>
+ * If <code>myAdapter</code> in the above example matches the current policy, <code>eObject</code> will be
+ * registered with the server and you will receive all changes from other transaction.
+ * <p>
+ * When the policy is changed all objects in the cache will automatically be recalculated.
+ * <p>
+ * You can subscribe to temporary objects. Even if you cannot receive notifications from other
+ * {@link CDOTransaction} for these because they are only local to you, at commit time these objects will be
+ * registered automatically.
+ *
+ * @see #removeChangeSubscriptionPolicy(CDOAdapterPolicy)
+ * @see #getChangeSubscriptionPolicies()
+ */
+ public void addChangeSubscriptionPolicy(CDOAdapterPolicy policy);
+
+ /**
+ * Removes a change subscription policy from this view.
+ *
+ * @see #addChangeSubscriptionPolicy(CDOAdapterPolicy)
+ * @see #getChangeSubscriptionPolicies()
+ */
+ public void removeChangeSubscriptionPolicy(CDOAdapterPolicy policy);
+
+ /**
+ * Returns the reference type to be used in the internal object cache.
+ *
+ * @return Either {@link ReferenceType#STRONG STRONG}, {@link ReferenceType#SOFT SOFT} or {@link ReferenceType#WEAK
+ * WEAK}.
+ */
+ public ReferenceType getCacheReferenceType();
+
+ /**
+ * Sets the reference type to be used in the internal object cache to either {@link ReferenceType#STRONG STRONG},
+ * {@link ReferenceType#SOFT SOFT} or {@link ReferenceType#WEAK WEAK}. If <code>null</code> is passed the default
+ * reference type {@link ReferenceType#SOFT SOFT} is set. If the given reference type does not differ from the one
+ * being currently set the new value is ignored and <code>false</code> is returned. Otherwise existing object
+ * references are converted to the new type and <code>true</code> is returned.
+ */
+ public boolean setCacheReferenceType(ReferenceType referenceType);
+
+ // TODO
+ public CDOAdapterPolicy getStrongReferencePolicy();
+
+ /**
+ * Sets the reference type to be used when an adapter is used to an object.
+ * <p>
+ * When <code>CDOView.setStrongReference(CDOAdapterPolicy.ALL)</code> is used, it is possible that the target object
+ * will be GC. In that case, the adapter will never received notifications. By Default the value is at
+ * <code>CDOAdapterPolicy.ALL</code>
+ */
+ public void setStrongReferencePolicy(CDOAdapterPolicy policy);
+
+ /**
+ * Returns the CDOStaleReferencePolicy in use.
+ *
+ * @since 3.0
+ * @deprecated Use {@link #getStaleReferencePolicy()}
+ */
+ @Deprecated
+ public CDOStaleReferencePolicy getStaleReferenceBehaviour();
+
+ /**
+ * Sets a policy on how to deal with stale references.
+ *
+ * @since 3.0
+ * @deprecated Use {@link #setStaleReferencePolicy(CDOStaleReferencePolicy)}
+ */
+ @Deprecated
+ public void setStaleReferenceBehaviour(CDOStaleReferencePolicy policy);
+
+ /**
+ * Returns the CDOStaleReferencePolicy in use.
+ *
+ * @since 4.1
+ */
+ public CDOStaleReferencePolicy getStaleReferencePolicy();
+
+ /**
+ * Sets a policy on how to deal with stale references.
+ *
+ * @since 4.1
+ */
+ public void setStaleReferencePolicy(CDOStaleReferencePolicy policy);
+
+ /**
+ * Returns the CDORevisionPrefetchingPolicy in use.
+ */
+ public CDORevisionPrefetchingPolicy getRevisionPrefetchingPolicy();
+
+ /**
+ * The CDORevisionPrefetchingPolicy feature of the CDOView allows CDO users to fetch many objects at a time.
+ * <p>
+ * The difference between the CDOCollectionLoadingPolicy feature and the CDORevisionPrefetchingPolicy feature is
+ * subtle. The CDOCollectionLoadingPolicy feature determines how and when to fetch CDOIDs, while the
+ * CDORevisionPrefetchingPolicy feature determines how and when to resolve CDOIDs (i.e. fetch the target objects).
+ * <p>
+ * <code>view.options().setRevisionPrefetchingPolicy (CDONet4jUtil.createRevisionPrefetchingPolicy(10));</code>
+ * <p>
+ * The end-user could provide its own implementation of the CDORevisionPrefetchingPolicy interface.
+ */
+ public void setRevisionPrefetchingPolicy(CDORevisionPrefetchingPolicy prefetchingPolicy);
+
+ /**
+ * @since 4.1
+ */
+ public CDOFeatureAnalyzer getFeatureAnalyzer();
+
+ /**
+ * @since 4.1
+ */
+ public void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer);
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setLoadNotificationEnabled(boolean) load notification enabled} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @since 4.1
+ */
+ public interface LoadNotificationEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setDetachmentNotificationEnabled(boolean) detachment notification enabled} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @since 4.1
+ */
+ public interface DetachmentNotificationEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setInvalidationNotificationEnabled(boolean) invalidation notification enabled} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+ public interface InvalidationNotificationEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setInvalidationPolicy(CDOInvalidationPolicy) invalidation policy} option has changed.
+ *
+ * @author Eike Stepper
+ * @since 3.0
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+ public interface InvalidationPolicyEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#addChangeSubscriptionPolicy(CDOAdapterPolicy) change subscription policies} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+ public interface ChangeSubscriptionPoliciesEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setCacheReferenceType(ReferenceType) cache reference type} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+ public interface CacheReferenceTypeEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setStrongReferencePolicy(CDOAdapterPolicy) strong reference policy} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @since 4.0
+ */
+ public interface StrongReferencePolicyEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setStrongReferencePolicy(CDOAdapterPolicy) strong reference policy} option has changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @deprecated Use {@link StrongReferencePolicyEvent} instead.
+ * @apiviz.exclude
+ */
+ @Deprecated
+ public interface ReferencePolicyEvent extends StrongReferencePolicyEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setStaleReferenceBehaviour(CDOStaleReferencePolicy) stale reference type} option has changed.
+ *
+ * @since 3.0
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+ public interface StaleReferencePolicyEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setRevisionPrefetchingPolicy(CDORevisionPrefetchingPolicy) revision prefetching policy} option has
+ * changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+ public interface RevisionPrefetchingPolicyEvent extends IOptionsEvent
+ {
+ }
+
+ /**
+ * An {@link IOptionsEvent options event} fired from view {@link CDOView#options() options} when the
+ * {@link Options#setFeatureAnalyzer(CDOFeatureAnalyzer) feature analyzer} option has
+ * changed.
+ *
+ * @author Eike Stepper
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @since 4.1
+ */
+ public interface FeatureAnalyzerEvent extends IOptionsEvent
+ {
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
index a7b8f9048f..70c743636f 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
@@ -1,2206 +1,2206 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Simon McDuff - maintenance
- * Victor Roldan Betancort - maintenance
- */
-package org.eclipse.emf.internal.cdo.view;
-
-import org.eclipse.emf.cdo.CDONotification;
-import org.eclipse.emf.cdo.CDOObject;
-import org.eclipse.emf.cdo.CDOState;
-import org.eclipse.emf.cdo.common.branch.CDOBranch;
-import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo;
-import org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo.Operation;
-import org.eclipse.emf.cdo.common.lock.CDOLockOwner;
-import org.eclipse.emf.cdo.common.lock.CDOLockState;
-import org.eclipse.emf.cdo.common.lock.CDOLockUtil;
-import org.eclipse.emf.cdo.common.revision.CDOIDAndBranch;
-import org.eclipse.emf.cdo.common.revision.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
-import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
-import org.eclipse.emf.cdo.common.revision.CDORevisionManager;
-import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
-import org.eclipse.emf.cdo.common.util.CDOCommonUtil;
-import org.eclipse.emf.cdo.common.util.CDOException;
-import org.eclipse.emf.cdo.spi.common.lock.InternalCDOLockState;
-import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
-import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager;
-import org.eclipse.emf.cdo.transaction.CDOCommitContext;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.CDOUtil;
-import org.eclipse.emf.cdo.util.LockTimeoutException;
-import org.eclipse.emf.cdo.util.ReadOnlyException;
-import org.eclipse.emf.cdo.util.StaleRevisionLockException;
-import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
-import org.eclipse.emf.cdo.view.CDOFeatureAnalyzer;
-import org.eclipse.emf.cdo.view.CDOInvalidationPolicy;
-import org.eclipse.emf.cdo.view.CDORevisionPrefetchingPolicy;
-import org.eclipse.emf.cdo.view.CDOStaleReferencePolicy;
-import org.eclipse.emf.cdo.view.CDOView;
-import org.eclipse.emf.cdo.view.CDOViewDurabilityChangedEvent;
-import org.eclipse.emf.cdo.view.CDOViewInvalidationEvent;
-import org.eclipse.emf.cdo.view.CDOViewLocksChangedEvent;
-
-import org.eclipse.emf.internal.cdo.bundle.OM;
-import org.eclipse.emf.internal.cdo.messages.Messages;
-import org.eclipse.emf.internal.cdo.object.CDODeltaNotificationImpl;
-import org.eclipse.emf.internal.cdo.object.CDOInvalidationNotificationImpl;
-import org.eclipse.emf.internal.cdo.object.CDONotificationBuilder;
-import org.eclipse.emf.internal.cdo.util.DefaultLocksChangedEvent;
-
-import org.eclipse.net4j.util.ObjectUtil;
-import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
-import org.eclipse.net4j.util.WrappedException;
-import org.eclipse.net4j.util.collection.HashBag;
-import org.eclipse.net4j.util.collection.Pair;
-import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
-import org.eclipse.net4j.util.concurrent.QueueRunner;
-import org.eclipse.net4j.util.event.IEvent;
-import org.eclipse.net4j.util.event.IListener;
-import org.eclipse.net4j.util.event.Notifier;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-import org.eclipse.net4j.util.om.log.OMLogger;
-import org.eclipse.net4j.util.om.monitor.EclipseMonitor;
-import org.eclipse.net4j.util.om.monitor.OMMonitor;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-import org.eclipse.net4j.util.options.OptionsEvent;
-import org.eclipse.net4j.util.ref.ReferenceType;
-import org.eclipse.net4j.util.ref.ReferenceValueMap;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.notify.impl.NotificationImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.spi.cdo.CDOSessionProtocol;
-import org.eclipse.emf.spi.cdo.CDOSessionProtocol.LockObjectsResult;
-import org.eclipse.emf.spi.cdo.CDOSessionProtocol.UnlockObjectsResult;
-import org.eclipse.emf.spi.cdo.FSMUtil;
-import org.eclipse.emf.spi.cdo.InternalCDOObject;
-import org.eclipse.emf.spi.cdo.InternalCDOSession;
-import org.eclipse.emf.spi.cdo.InternalCDOTransaction;
-import org.eclipse.emf.spi.cdo.InternalCDOView;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-/**
- * @author Eike Stepper
- */
-public class CDOViewImpl extends AbstractCDOView
-{
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_VIEW, CDOViewImpl.class);
-
- private int viewID;
-
- private InternalCDOSession session;
-
- private String durableLockingID;
-
- private ChangeSubscriptionManager changeSubscriptionManager = new ChangeSubscriptionManager();
-
- private AdapterManager adapterManager = new AdapterManager();
-
- private OptionsImpl options;
-
- private long lastUpdateTime;
-
- private QueueRunner invalidationRunner;
-
- private Map<CDOObject, CDOLockState> lockStates = new WeakHashMap<CDOObject, CDOLockState>();
-
- @ExcludeFromDump
- private InvalidationRunnerLock invalidationRunnerLock = new InvalidationRunnerLock();
-
- private volatile boolean invalidationRunnerActive;
-
- /**
- * @since 2.0
- */
- public CDOViewImpl(CDOBranch branch, long timeStamp)
- {
- super(branch.getPoint(timeStamp), CDOUtil.isLegacyModeDefault());
- options = createOptions();
- }
-
- public CDOViewImpl(String durableLockingID)
- {
- super(CDOUtil.isLegacyModeDefault());
- this.durableLockingID = durableLockingID;
- options = createOptions();
- }
-
- /**
- * @since 2.0
- */
- public OptionsImpl options()
- {
- return options;
- }
-
- public int getViewID()
- {
- return viewID;
- }
-
- /**
- * @since 2.0
- */
- public void setViewID(int viewId)
- {
- viewID = viewId;
- }
-
- /**
- * @since 2.0
- */
- public InternalCDOSession getSession()
- {
- return session;
- }
-
- /**
- * @since 2.0
- */
- public void setSession(InternalCDOSession session)
- {
- this.session = session;
- }
-
- public int getSessionID()
- {
- return session.getSessionID();
- }
-
- public synchronized boolean setBranchPoint(CDOBranchPoint branchPoint)
- {
- checkActive();
-
- long timeStamp = branchPoint.getTimeStamp();
- long creationTimeStamp = getSession().getRepositoryInfo().getCreationTime();
- if (timeStamp != UNSPECIFIED_DATE && timeStamp < creationTimeStamp)
- {
- throw new IllegalArgumentException(
- MessageFormat
- .format(
- "timeStamp ({0}) < repository creation time ({1})", CDOCommonUtil.formatTimeStamp(timeStamp), CDOCommonUtil.formatTimeStamp(creationTimeStamp))); //$NON-NLS-1$
- }
-
- if (branchPoint.equals(getBranchPoint()))
- {
- return false;
- }
-
- if (TRACER.isEnabled())
- {
- TRACER.format("Changing view target to {0}", branchPoint); //$NON-NLS-1$
- }
-
- Map<CDOID, InternalCDORevision> oldRevisions = new HashMap<CDOID, InternalCDORevision>();
- List<CDORevisionKey> allChangedObjects = new ArrayList<CDORevisionKey>();
- List<CDOIDAndVersion> allDetachedObjects = new ArrayList<CDOIDAndVersion>();
-
- List<InternalCDOObject> invalidObjects = getInvalidObjects(branchPoint);
- for (InternalCDOObject object : invalidObjects)
- {
- InternalCDORevision revision = object.cdoRevision();
- if (revision != null)
- {
- oldRevisions.put(object.cdoID(), revision);
- }
- }
-
- CDOSessionProtocol sessionProtocol = getSession().getSessionProtocol();
- OMMonitor monitor = new EclipseMonitor(new NullProgressMonitor());
- sessionProtocol.switchTarget(viewID, branchPoint, invalidObjects, allChangedObjects, allDetachedObjects, monitor);
-
- basicSetBranchPoint(branchPoint);
- doInvalidate(branchPoint.getBranch(), CDOBranchPoint.UNSPECIFIED_DATE, allChangedObjects, allDetachedObjects,
- oldRevisions);
-
- IListener[] listeners = getListeners();
- if (listeners != null)
- {
- fireViewTargetChangedEvent(listeners);
- }
-
- return true;
- }
-
- private List<InternalCDOObject> getInvalidObjects(CDOBranchPoint branchPoint)
- {
- List<InternalCDOObject> result = new ArrayList<InternalCDOObject>();
- for (InternalCDOObject object : getModifiableObjects().values())
- {
- CDORevision revision = object.cdoRevision();
- if (revision == null || !revision.isValid(branchPoint))
- {
- result.add(object);
- }
- }
-
- return result;
- }
-
- /**
- * @throws InterruptedException
- * @since 2.0
- */
- public synchronized void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout)
- throws InterruptedException
- {
- lockObjects(objects, lockType, timeout, false);
- }
-
- public synchronized void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout,
- boolean recursive) throws InterruptedException
- {
- checkActive();
- checkState(getTimeStamp() == CDOBranchPoint.UNSPECIFIED_DATE, "Locking not supported for historial views");
-
- List<CDORevisionKey> revisionKeys = new LinkedList<CDORevisionKey>();
- List<CDOLockState> locksOnNewObjects = new LinkedList<CDOLockState>();
- for (CDOObject object : objects)
- {
- if (FSMUtil.isNew(object))
- {
- CDOLockState lockState = createUpdatedLockStateForNewObject(object, lockType, true);
- locksOnNewObjects.add(lockState);
- }
- else
- {
- InternalCDORevision revision = getRevision(object);
- if (revision != null)
- {
- revisionKeys.add(revision);
- }
- }
- }
-
- LockObjectsResult result = null;
- if (!revisionKeys.isEmpty())
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- result = sessionProtocol.lockObjects2(revisionKeys, viewID, getBranch(), lockType, recursive, timeout);
-
- if (!result.isSuccessful())
- {
- if (result.isTimedOut())
- {
- throw new LockTimeoutException();
- }
-
- CDORevisionKey[] staleRevisions = result.getStaleRevisions();
- if (staleRevisions != null)
- {
- throw new StaleRevisionLockException(staleRevisions);
- }
-
- throw new AssertionError("Unexpected lock result state");
- }
-
- if (result.isWaitForUpdate())
- {
- if (!getSession().options().isPassiveUpdateEnabled())
- {
- throw new AssertionError(
- "Lock result requires client to wait, but client does not have passiveUpdates enabled.");
- }
-
- long requiredTimestamp = result.getRequiredTimestamp();
- waitForUpdate(requiredTimestamp);
- }
- }
-
- CDOLockState[] locksOnNewObjectsArray = locksOnNewObjects.toArray(new CDOLockState[locksOnNewObjects.size()]);
- updateLockStates(locksOnNewObjectsArray);
-
- if (result != null)
- {
- updateAndNotifyLockStates(Operation.LOCK, lockType, result.getTimestamp(), result.getNewLockStates());
- }
- }
-
- protected void updateAndNotifyLockStates(Operation op, LockType type, long timestamp, CDOLockState[] newLockStates)
- {
- updateLockStates(newLockStates);
- notifyOtherViewsAboutLockChanges(op, type, timestamp, newLockStates);
- }
-
- /**
- * Updates the lock states of objects held in this view
- */
- protected void updateLockStates(CDOLockState[] newLockStates)
- {
- for (CDOLockState lockState : newLockStates)
- {
- Object lockedObject = lockState.getLockedObject();
- CDOID id;
-
- if (lockedObject instanceof CDOID)
- {
- id = (CDOID)lockedObject;
- }
- else if (lockedObject instanceof CDOIDAndBranch)
- {
- id = ((CDOIDAndBranch)lockedObject).getID();
- }
- else if (lockedObject instanceof EObject)
- {
- CDOObject newObj = CDOUtil.getCDOObject((EObject)lockedObject);
- id = newObj.cdoID();
- }
- else
- {
- throw new IllegalStateException("Unexpected: " + lockedObject.getClass().getSimpleName());
- }
-
- InternalCDOObject object = getObject(id, false);
- if (object != null)
- {
- lockStates.put(object, lockState);
- }
- }
- }
-
- /**
- * Notifies other views of lock changes performed in this view
- */
- private void notifyOtherViewsAboutLockChanges(Operation op, LockType type, long timestamp, CDOLockState[] lockStates)
- {
- if (lockStates.length > 0)
- {
- CDOLockChangeInfo lockChangeInfo = makeLockChangeInfo(op, type, timestamp, lockStates);
- getSession().handleLockNotification(lockChangeInfo, this);
- }
- }
-
- private CDOLockChangeInfo makeLockChangeInfo(Operation op, LockType type, long timestamp, CDOLockState[] newLockStates)
- {
- return CDOLockUtil.createLockChangeInfo(timestamp, this, getBranch(), op, type, newLockStates);
- }
-
- public void handleLockNotification(InternalCDOView sender, CDOLockChangeInfo lockChangeInfo)
- {
- CDOLockChangeInfo event = null;
-
- try
- {
- synchronized (this)
- {
- if (!options().isLockNotificationEnabled())
- {
- return;
- }
-
- if (lockChangeInfo.isInvalidateAll())
- {
- lockStates.clear();
- event = lockChangeInfo;
- return;
- }
-
- // If lockChangeInfo pertains to a different view, do nothing.
- if (!lockChangeInfo.getBranch().equals(getBranch()))
- {
- return;
- }
-
- // If lockChangeInfo represents lock changes authored by this view itself, do nothing.
- CDOLockOwner thisView = CDOLockUtil.createLockOwner(this);
- if (lockChangeInfo.getLockOwner().equals(thisView))
- {
- return;
- }
-
- // TODO (CD) I know it is Eike's desideratum that this be done asynchronously.. but beware,
- // this will require the tests to be fixed to listen for the view events instead of the
- // session events.
- updateLockStates(lockChangeInfo.getLockStates());
- event = lockChangeInfo;
- }
- }
- finally
- {
- if (event != null)
- {
- fireLocksChangedEvent(sender, event);
- }
- }
- }
-
- private void fireLocksChangedEvent(InternalCDOView sender, CDOLockChangeInfo lockChangeInfo)
- {
- IListener[] listeners = getListeners();
- if (listeners != null)
- {
- fireEvent(new LocksChangedEvent(sender, lockChangeInfo), listeners);
- }
- }
-
- protected InternalCDORevision getRevision(CDOObject object)
- {
- if (object.cdoState() == CDOState.NEW)
- {
- return null;
- }
-
- InternalCDORevision revision = (InternalCDORevision)object.cdoRevision();
- if (revision == null)
- {
- revision = CDOStateMachine.INSTANCE.read((InternalCDOObject)object);
- }
-
- return revision;
- }
-
- /**
- * @since 2.0
- */
- public synchronized void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType)
- {
- unlockObjects(objects, lockType, false);
- }
-
- /**
- * Note: This may get called with objects == null, and lockType == null, which is a request to remove all locks on all
- * objects in this view.
- */
- public synchronized void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType, boolean recursive)
- {
- checkActive();
-
- List<CDOID> objectIDs = null;
- List<CDOLockState> locksOnNewObjects = new LinkedList<CDOLockState>();
-
- if (objects != null)
- {
- objectIDs = new ArrayList<CDOID>();
-
- for (CDOObject object : objects)
- {
- if (FSMUtil.isNew(object))
- {
- CDOLockState lockState = createUpdatedLockStateForNewObject(object, lockType, false);
- locksOnNewObjects.add(lockState);
- }
- else
- {
- objectIDs.add(object.cdoID());
- }
- }
- }
- else
- {
- locksOnNewObjects.addAll(createUnlockedLockStatesForAllNewObjects());
- }
-
- UnlockObjectsResult result = null;
- if (objectIDs == null || !objectIDs.isEmpty())
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- result = sessionProtocol.unlockObjects2(this, objectIDs, lockType, recursive);
- }
-
- CDOLockState[] locksOnNewObjectsArray = locksOnNewObjects.toArray(new CDOLockState[locksOnNewObjects.size()]);
- updateLockStates(locksOnNewObjectsArray);
-
- if (result != null)
- {
- updateAndNotifyLockStates(Operation.UNLOCK, lockType, result.getTimestamp(), result.getNewLockStates());
- }
- }
-
- protected InternalCDOLockState createUpdatedLockStateForNewObject(CDOObject object, LockType lockType, boolean on)
- {
- throw new ReadOnlyException();
- }
-
- protected Collection<CDOLockState> createUnlockedLockStatesForAllNewObjects()
- {
- return Collections.emptyList();
- }
-
- /**
- * @since 2.0
- */
- public synchronized void unlockObjects()
- {
- unlockObjects(null, null);
- }
-
- /**
- * @since 2.0
- */
- public synchronized boolean isObjectLocked(CDOObject object, LockType lockType, boolean byOthers)
- {
- checkActive();
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- return sessionProtocol.isObjectLocked(this, object, lockType, byOthers);
- }
-
- public boolean isDurableView()
- {
- return durableLockingID != null;
- }
-
- public synchronized String getDurableLockingID()
- {
- return durableLockingID;
- }
-
- @Deprecated
- public String enableDurableLocking(boolean enable)
- {
- if (enable)
- {
- return enableDurableLocking();
- }
-
- disableDurableLocking(false);
- return null;
- }
-
- public String enableDurableLocking()
- {
- final String oldID = durableLockingID;
-
- try
- {
- synchronized (this)
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- if (durableLockingID == null)
- {
- durableLockingID = sessionProtocol.changeLockArea(this, true);
- }
-
- return durableLockingID;
- }
- }
- finally
- {
- fireDurabilityChangedEvent(oldID);
- }
- }
-
- public void disableDurableLocking(boolean releaseLocks)
- {
- final String oldID = durableLockingID;
-
- try
- {
- synchronized (this)
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- if (durableLockingID != null)
- {
- sessionProtocol.changeLockArea(this, false);
- durableLockingID = null;
-
- if (releaseLocks)
- {
- unlockObjects();
- }
- }
- }
- }
- finally
- {
- fireDurabilityChangedEvent(oldID);
- }
- }
-
- private void fireDurabilityChangedEvent(final String oldID)
- {
- if (!ObjectUtil.equals(oldID, durableLockingID))
- {
- fireEvent(new CDOViewDurabilityChangedEvent()
- {
- public CDOView getSource()
- {
- return CDOViewImpl.this;
- }
-
- public String getOldDurableLockingID()
- {
- return oldID;
- }
-
- public String getNewDurableLockingID()
- {
- return durableLockingID;
- }
- });
- }
- }
-
- /**
- * @since 2.0
- */
- @Deprecated
- public synchronized CDOFeatureAnalyzer getFeatureAnalyzer()
- {
- return options().getFeatureAnalyzer();
- }
-
- /**
- * @since 2.0
- */
- @Deprecated
- public synchronized void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer)
- {
- options.setFeatureAnalyzer(featureAnalyzer);
- }
-
- /**
- * @since 2.0
- */
- public InternalCDOTransaction toTransaction()
- {
- checkActive();
- if (this instanceof InternalCDOTransaction)
- {
- return (InternalCDOTransaction)this;
- }
-
- throw new ReadOnlyException(MessageFormat.format(Messages.getString("CDOViewImpl.0"), this)); //$NON-NLS-1$
- }
-
- public synchronized InternalCDORevision getRevision(CDOID id, boolean loadOnDemand)
- {
- InternalCDORevisionManager revisionManager = session.getRevisionManager();
- int initialChunkSize = session.options().getCollectionLoadingPolicy().getInitialChunkSize();
- CDOBranchPoint branchPoint = getBranchPointForID(id);
- return revisionManager.getRevision(id, branchPoint, initialChunkSize, CDORevision.DEPTH_NONE, loadOnDemand);
- }
-
- public synchronized CDOLockState[] getLockStates(Collection<CDOID> ids)
- {
- return getLockStates(ids, true);
- }
-
- protected synchronized CDOLockState[] getLockStates(Collection<CDOID> ids, boolean loadOnDemand)
- {
- List<CDOID> missing = new LinkedList<CDOID>();
- List<CDOLockState> lockStates = new LinkedList<CDOLockState>();
- for (CDOID id : ids)
- {
- CDOLockState lockState = null;
- InternalCDOObject obj = getObject(id, false);
- if (obj != null)
- {
- lockState = this.lockStates.get(obj);
- }
-
- if (lockState != null)
- {
- lockStates.add(lockState);
- }
- else
- {
- missing.add(id);
- }
- }
-
- if (loadOnDemand && missing.size() > 0)
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- CDOLockState[] loadedLockStates = sessionProtocol.getLockStates(viewID, missing);
- for (CDOLockState loadedLockState : loadedLockStates)
- {
- lockStates.add(loadedLockState);
- }
- }
-
- return lockStates.toArray(new CDOLockState[lockStates.size()]);
- }
-
- protected CDOLockState getLockState(CDOObject object)
- {
- return lockStates.get(object);
- }
-
- private CDOBranchPoint getBranchPointForID(CDOID id)
- {
- // If this view's timestamp is something other than UNSPECIFIED_DATE,
- // then this is an 'audit' view, and so this timestamp must always be
- // used without any concern for possible sticky-view behavior
- CDOBranchPoint branchPoint = getBranchPoint();
- if (branchPoint.getTimeStamp() != CDOBranchPoint.UNSPECIFIED_DATE)
- {
- return branchPoint;
- }
-
- InternalCDOSession session = getSession();
- if (session.isSticky())
- {
- branchPoint = session.getCommittedSinceLastRefresh(id);
- if (branchPoint == null)
- {
- branchPoint = getBranch().getPoint(session.getLastUpdateTime());
- }
-
- return branchPoint;
- }
-
- return this;
- }
-
- public synchronized void prefetchRevisions(CDOID id, int depth)
- {
- checkArg(depth != CDORevision.DEPTH_NONE, "Prefetch depth must not be zero"); //$NON-NLS-1$
- int initialChunkSize = session.options().getCollectionLoadingPolicy().getInitialChunkSize();
- prefetchRevisions(id, depth, initialChunkSize);
- }
-
- protected void prefetchRevisions(CDOID id, int depth, int initialChunkSize)
- {
- CDORevisionManager revisionManager = session.getRevisionManager();
- revisionManager.getRevision(id, this, initialChunkSize, depth, true);
- }
-
- /*
- * Must not by synchronized on the view!
- */
- public/* synchronized */void invalidate(CDOBranch branch, long lastUpdateTime,
- List<CDORevisionKey> allChangedObjects, List<CDOIDAndVersion> allDetachedObjects,
- Map<CDOID, InternalCDORevision> oldRevisions, boolean async)
- {
- if (async)
- {
- QueueRunner runner = getInvalidationRunner();
- runner.addWork(new InvalidationRunnable(branch, lastUpdateTime, allChangedObjects, allDetachedObjects,
- oldRevisions));
- }
- else
- {
- doInvalidate(branch, lastUpdateTime, allChangedObjects, allDetachedObjects, oldRevisions);
- }
- }
-
- protected synchronized void doInvalidate(CDOBranch branch, long lastUpdateTime,
- List<CDORevisionKey> allChangedObjects, List<CDOIDAndVersion> allDetachedObjects,
- Map<CDOID, InternalCDORevision> oldRevisions)
- {
- try
- {
- if (ObjectUtil.equals(branch, getBranch()))
- {
- Map<CDOObject, Pair<CDORevision, CDORevisionDelta>> conflicts = null;
- List<CDORevisionDelta> deltas = new ArrayList<CDORevisionDelta>();
- Map<CDOObject, CDORevisionDelta> revisionDeltas = new HashMap<CDOObject, CDORevisionDelta>();
- Set<CDOObject> detachedObjects = new HashSet<CDOObject>();
-
- conflicts = invalidate(lastUpdateTime, allChangedObjects, allDetachedObjects, deltas, revisionDeltas,
- detachedObjects);
-
- sendInvalidationNotifications(revisionDeltas.keySet(), detachedObjects);
- fireInvalidationEvent(lastUpdateTime, Collections.unmodifiableMap(revisionDeltas),
- Collections.unmodifiableSet(detachedObjects));
-
- // First handle the conflicts, if any.
- if (conflicts != null)
- {
- handleConflicts(conflicts, deltas);
- }
-
- // Then send the notifications. The deltas could have been modified by the conflict resolvers.
- if (!deltas.isEmpty() || !detachedObjects.isEmpty())
- {
- sendDeltaNotifications(deltas, detachedObjects, oldRevisions);
- }
-
- fireAdaptersNotifiedEvent(lastUpdateTime);
- }
- }
- finally
- {
- setLastUpdateTime(lastUpdateTime);
- }
- }
-
- private QueueRunner getInvalidationRunner()
- {
- synchronized (invalidationRunnerLock)
- {
- if (invalidationRunner == null)
- {
- invalidationRunner = createInvalidationRunner();
- invalidationRunner.activate();
- }
- }
-
- return invalidationRunner;
- }
-
- private QueueRunner createInvalidationRunner()
- {
- return new QueueRunner()
- {
- @Override
- protected String getThreadName()
- {
- return "InvalidationRunner-" + CDOViewImpl.this; //$NON-NLS-1$
- }
-
- @Override
- public String toString()
- {
- return getThreadName();
- }
- };
- }
-
- public boolean isInvalidationRunnerActive()
- {
- return invalidationRunnerActive;
- }
-
- private void sendInvalidationNotifications(Set<CDOObject> dirtyObjects, Set<CDOObject> detachedObjects)
- {
- if (options().isInvalidationNotificationEnabled())
- {
- for (CDOObject dirtyObject : dirtyObjects)
- {
- if (((InternalCDOObject)dirtyObject).eNotificationRequired())
- {
- CDOInvalidationNotificationImpl notification = new CDOInvalidationNotificationImpl(dirtyObject);
- dirtyObject.eNotify(notification);
- }
- }
-
- for (CDOObject detachedObject : detachedObjects)
- {
- if (((InternalCDOObject)detachedObject).eNotificationRequired())
- {
- CDOInvalidationNotificationImpl notification = new CDOInvalidationNotificationImpl(detachedObject);
- detachedObject.eNotify(notification);
- }
- }
- }
- }
-
- /**
- * @since 2.0
- */
- private void fireInvalidationEvent(long timeStamp, Map<CDOObject, CDORevisionDelta> revisionDeltas,
- Set<CDOObject> detachedObjects)
- {
- if (!revisionDeltas.isEmpty() || !detachedObjects.isEmpty())
- {
- IListener[] listeners = getListeners();
- if (listeners != null)
- {
- fireEvent(new InvalidationEvent(timeStamp, revisionDeltas, detachedObjects), listeners);
- }
- }
- }
-
- /**
- * @since 2.0
- */
- public synchronized void sendDeltaNotifications(Collection<CDORevisionDelta> deltas, Set<CDOObject> detachedObjects,
- Map<CDOID, InternalCDORevision> oldRevisions)
- {
- if (deltas != null)
- {
- CDONotificationBuilder builder = new CDONotificationBuilder(this);
- Map<CDOID, InternalCDOObject> objects = getModifiableObjects();
- for (CDORevisionDelta delta : deltas)
- {
- CDOID id = delta.getID();
- InternalCDOObject object = objects.get(id);
- if (object != null && object.eNotificationRequired())
- {
- // if (!isLocked(object))
- {
- InternalCDORevision oldRevision = null;
- if (oldRevisions != null)
- {
- oldRevision = oldRevisions.get(id);
- }
-
- NotificationChain notification = builder.buildNotification(object, oldRevision, delta, detachedObjects);
- if (notification != null)
- {
- notification.dispatch();
- }
- }
- }
- }
- }
-
- if (detachedObjects != null)
- {
- if (options().isDetachmentNotificationEnabled())
- {
- for (CDOObject detachedObject : detachedObjects)
- {
- InternalCDOObject object = (InternalCDOObject)detachedObject;
- if (object.eNotificationRequired())
- {
- // if (!isLocked(object))
- {
- NotificationImpl notification = new CDODeltaNotificationImpl(object, CDONotification.DETACH_OBJECT,
- Notification.NO_FEATURE_ID, null, null);
- notification.dispatch();
- }
- }
- }
- }
-
- getChangeSubscriptionManager().handleDetachedObjects(detachedObjects);
- }
- }
-
- /**
- * TODO For this method to be useable locks must be cached locally!
- */
- @SuppressWarnings("unused")
- private boolean isLocked(InternalCDOObject object)
- {
- if (object.cdoWriteLock().isLocked())
- {
- return true;
- }
-
- if (object.cdoReadLock().isLocked())
- {
- return true;
- }
-
- return false;
- }
-
- /**
- * @since 2.0
- */
- protected final AdapterManager getAdapterManager()
- {
- return adapterManager;
- }
-
- /**
- * @since 2.0
- */
- public synchronized void handleAddAdapter(InternalCDOObject eObject, Adapter adapter)
- {
- if (!FSMUtil.isNew(eObject))
- {
- subscribe(eObject, adapter);
- }
-
- adapterManager.attachAdapter(eObject, adapter);
- }
-
- /**
- * @since 2.0
- */
- public synchronized void handleRemoveAdapter(InternalCDOObject eObject, Adapter adapter)
- {
- if (!FSMUtil.isNew(eObject))
- {
- unsubscribe(eObject, adapter);
- }
-
- adapterManager.detachAdapter(eObject, adapter);
- }
-
- /**
- * @since 2.0
- */
- public synchronized void subscribe(EObject eObject, Adapter adapter)
- {
- changeSubscriptionManager.subscribe(eObject, adapter);
- }
-
- /**
- * @since 2.0
- */
- public synchronized void unsubscribe(EObject eObject, Adapter adapter)
- {
- changeSubscriptionManager.unsubscribe(eObject, adapter);
- }
-
- /**
- * @since 2.0
- */
- public synchronized boolean hasSubscription(CDOID id)
- {
- return changeSubscriptionManager.getSubcribeObject(id) != null;
- }
-
- /**
- * @since 2.0
- */
- protected final ChangeSubscriptionManager getChangeSubscriptionManager()
- {
- return changeSubscriptionManager;
- }
-
- /**
- * @since 2.0
- */
- protected OptionsImpl createOptions()
- {
- return new OptionsImpl();
- }
-
- /**
- * @since 2.0
- */
- @Override
- protected void doBeforeActivate() throws Exception
- {
- super.doBeforeActivate();
- checkState(session, "session"); //$NON-NLS-1$
- checkState(viewID > 0, "viewID"); //$NON-NLS-1$
- }
-
- /**
- * @since 2.0
- */
- @Override
- protected void doActivate() throws Exception
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- if (durableLockingID != null)
- {
- CDOBranchPoint branchPoint = sessionProtocol.openView(viewID, isReadOnly(), durableLockingID);
- basicSetBranchPoint(branchPoint);
- }
- else
- {
- sessionProtocol.openView(viewID, isReadOnly(), this);
- }
- }
-
- /**
- * @since 2.0
- */
- @Override
- protected void doDeactivate() throws Exception
- {
- if (invalidationRunner != null)
- {
- LifecycleUtil.deactivate(invalidationRunner, OMLogger.Level.WARN);
- invalidationRunner = null;
- }
-
- try
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- if (LifecycleUtil.isActive(sessionProtocol))
- {
- sessionProtocol.closeView(viewID);
- }
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- }
-
- try
- {
- session.viewDetached(this);
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- }
-
- changeSubscriptionManager = null;
- options = null;
- super.doDeactivate();
- }
-
- public synchronized long getLastUpdateTime()
- {
- return lastUpdateTime;
- }
-
- public synchronized void setLastUpdateTime(long lastUpdateTime)
- {
- if (this.lastUpdateTime < lastUpdateTime)
- {
- this.lastUpdateTime = lastUpdateTime;
- }
-
- notifyAll();
- }
-
- public boolean waitForUpdate(long updateTime, long timeoutMillis)
- {
- long end = timeoutMillis == NO_TIMEOUT ? Long.MAX_VALUE : System.currentTimeMillis() + timeoutMillis;
- synchronized (this)
- {
- for (;;)
- {
- if (lastUpdateTime >= updateTime)
- {
- return true;
- }
-
- long now = System.currentTimeMillis();
- if (now >= end)
- {
- return false;
- }
-
- try
- {
- long waitMillis = end - now;
- wait(waitMillis);
- }
- catch (InterruptedException ex)
- {
- throw WrappedException.wrap(ex);
- }
- }
- }
- }
-
- /**
- * @author Simon McDuff
- * @since 2.0
- */
- protected final class AdapterManager
- {
- private Set<CDOObject> objects = new HashBag<CDOObject>();
-
- public AdapterManager()
- {
- }
-
- public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext)
- {
- if (options().getStrongReferencePolicy() != CDOAdapterPolicy.NONE)
- {
- for (CDOObject object : commitContext.getNewObjects().values())
- {
- attachObject(object);
- }
-
- for (CDOObject object : commitContext.getDetachedObjects().values())
- {
- detachObject(object);
- }
- }
- }
-
- private void attachObject(CDOObject object)
- {
- if (((InternalEObject)object).eNotificationRequired())
- {
- CDOAdapterPolicy strongReferencePolicy = options().getStrongReferencePolicy();
- int count = 0;
- for (Adapter adapter : object.eAdapters())
- {
- if (strongReferencePolicy.isValid(object, adapter))
- {
- count++;
- }
- }
-
- for (int i = 0; i < count; i++)
- {
- objects.add(object);
- }
- }
- }
-
- private void detachObject(CDOObject object)
- {
- while (objects.remove(object))
- {
- // Do nothing
- }
- }
-
- private void attachAdapter(CDOObject object, Adapter adapter)
- {
- if (options().getStrongReferencePolicy().isValid(object, adapter))
- {
- objects.add(object);
- }
- }
-
- private void detachAdapter(CDOObject object, Adapter adapter)
- {
- if (options().getStrongReferencePolicy().isValid(object, adapter))
- {
- objects.remove(object);
- }
- }
-
- private void reset()
- {
- // Keep the objects in memory
- Set<CDOObject> oldObjects = objects;
- objects = new HashBag<CDOObject>();
- if (options().getStrongReferencePolicy() != CDOAdapterPolicy.NONE)
- {
- for (InternalCDOObject object : getObjectsList())
- {
- attachObject(object);
- }
- }
-
- oldObjects.clear();
- }
- }
-
- /**
- * @author Simon McDuff
- * @since 2.0
- */
- protected final class ChangeSubscriptionManager
- {
- private Map<CDOID, SubscribeEntry> subscriptions = new HashMap<CDOID, SubscribeEntry>();
-
- public ChangeSubscriptionManager()
- {
- }
-
- public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext)
- {
- handleNewObjects(commitContext.getNewObjects().values());
- handleDetachedObjects(commitContext.getDetachedObjects().values());
- }
-
- private void subscribe(EObject eObject, Adapter adapter)
- {
- subscribe(eObject, adapter, 1);
- }
-
- private void unsubscribe(EObject eObject, Adapter adapter)
- {
- subscribe(eObject, adapter, -1);
- }
-
- /**
- * Register to the server all objects from the active list
- */
- private void notifyChangeSubcriptionPolicy()
- {
- boolean policiesPresent = options().hasChangeSubscriptionPolicies();
- subscriptions.clear();
- List<CDOID> ids = new ArrayList<CDOID>();
- if (policiesPresent)
- {
- for (InternalCDOObject object : getObjectsList())
- {
- int count = getNumberOfValidAdapter(object);
- if (count > 0)
- {
- ids.add(object.cdoID());
- addEntry(object.cdoID(), object, count);
- }
- }
- }
-
- request(ids, true, true);
- }
-
- private void handleDetachedObjects(Collection<CDOObject> detachedObjects)
- {
- for (CDOObject detachedObject : detachedObjects)
- {
- CDOID id = detachedObject.cdoID();
- SubscribeEntry entry = subscriptions.get(id);
- if (entry != null)
- {
- detachObject(id);
- }
- }
- }
-
- private void handleNewObjects(Collection<? extends CDOObject> newObjects)
- {
- for (CDOObject object : newObjects)
- {
- InternalCDOObject cdoDetachedObject = (InternalCDOObject)object;
- if (cdoDetachedObject != null)
- {
- int count = getNumberOfValidAdapter(cdoDetachedObject);
- if (count > 0)
- {
- subscribe(cdoDetachedObject.cdoID(), cdoDetachedObject, count);
- }
- }
- }
- }
-
- private InternalCDOObject getSubcribeObject(CDOID id)
- {
- SubscribeEntry entry = subscriptions.get(id);
- if (entry != null)
- {
- return entry.getObject();
- }
-
- return null;
- }
-
- private void request(List<CDOID> ids, boolean clear, boolean subscribeMode)
- {
- CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
- sessionProtocol.changeSubscription(getViewID(), ids, subscribeMode, clear);
- }
-
- private int getNumberOfValidAdapter(InternalCDOObject object)
- {
- int count = 0;
- if (!FSMUtil.isTransient(object) && !FSMUtil.isNew(object))
- {
- if (object.eNotificationRequired())
- {
- for (Adapter adapter : object.eAdapters())
- {
- if (shouldSubscribe(object, adapter))
- {
- count++;
- }
- }
- }
- }
-
- return count;
- }
-
- private void subscribe(EObject eObject, Adapter adapter, int adjust)
- {
- if (shouldSubscribe(eObject, adapter))
- {
- CDOView view = CDOViewImpl.this;
- InternalCDOObject internalCDOObject = FSMUtil.adapt(eObject, view);
- if (internalCDOObject.cdoView() != view)
- {
- throw new CDOException(MessageFormat.format(Messages.getString("CDOViewImpl.27"), internalCDOObject)); //$NON-NLS-1$
- }
-
- subscribe(internalCDOObject.cdoID(), internalCDOObject, adjust);
- }
- }
-
- private boolean shouldSubscribe(EObject eObject, Adapter adapter)
- {
- for (CDOAdapterPolicy policy : options().getChangeSubscriptionPolicies())
- {
- if (policy.isValid(eObject, adapter))
- {
- return true;
- }
- }
-
- return false;
- }
-
- private void subscribe(CDOID id, InternalCDOObject cdoObject, int adjust)
- {
- boolean policiesPresent = options().hasChangeSubscriptionPolicies();
-
- int count = 0;
- SubscribeEntry entry = subscriptions.get(id);
- if (entry == null)
- {
- // Cannot adjust negative value
- if (adjust < 0)
- {
- return;
- }
-
- // Notification need to be enable to send correct value to the server
- if (policiesPresent)
- {
- request(Collections.singletonList(id), false, true);
- }
- }
- else
- {
- count = entry.getCount();
- }
-
- count += adjust;
-
- // Look if objects need to be unsubscribe
- if (count <= 0)
- {
- subscriptions.remove(id);
-
- // Notification need to be enable to send correct value to the server
- if (policiesPresent)
- {
- request(Collections.singletonList(id), false, false);
- }
- }
- else
- {
- if (entry == null)
- {
- addEntry(id, cdoObject, count);
- }
- else
- {
- entry.setCount(count);
- }
- }
- }
-
- private void detachObject(CDOID id)
- {
- subscribe(id, null, Integer.MIN_VALUE);
- }
-
- private void addEntry(CDOID key, InternalCDOObject object, int count)
- {
- subscriptions.put(key, new SubscribeEntry(object, count));
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private static final class SubscribeEntry
- {
- private InternalCDOObject object;
-
- private int count;
-
- public SubscribeEntry(InternalCDOObject object, int count)
- {
- this.object = object;
- this.count = count;
- }
-
- public InternalCDOObject getObject()
- {
- return object;
- }
-
- public int getCount()
- {
- return count;
- }
-
- public void setCount(int count)
- {
- this.count = count;
- }
- }
-
- /**
- * A separate class for better monitor debugging.
- *
- * @author Eike Stepper
- */
- private static final class InvalidationRunnerLock
- {
- }
-
- /**
- * @author Eike Stepper
- */
- private final class InvalidationRunnable implements Runnable
- {
- private final CDOBranch branch;
-
- private final long lastUpdateTime;
-
- private final List<CDORevisionKey> allChangedObjects;
-
- private final List<CDOIDAndVersion> allDetachedObjects;
-
- private final Map<CDOID, InternalCDORevision> oldRevisions;
-
- private InvalidationRunnable(CDOBranch branch, long lastUpdateTime, List<CDORevisionKey> allChangedObjects,
- List<CDOIDAndVersion> allDetachedObjects, Map<CDOID, InternalCDORevision> oldRevisions)
- {
- this.branch = branch;
- this.lastUpdateTime = lastUpdateTime;
- this.allChangedObjects = allChangedObjects;
- this.allDetachedObjects = allDetachedObjects;
- this.oldRevisions = oldRevisions;
- }
-
- public void run()
- {
- try
- {
- invalidationRunnerActive = true;
- doInvalidate(branch, lastUpdateTime, allChangedObjects, allDetachedObjects, oldRevisions);
- }
- finally
- {
- invalidationRunnerActive = false;
- }
- }
- }
-
- /**
- * @author Simon McDuff
- */
- private final class InvalidationEvent extends Event implements CDOViewInvalidationEvent
- {
- private static final long serialVersionUID = 1L;
-
- private long timeStamp;
-
- private Map<CDOObject, CDORevisionDelta> revisionDeltas;
-
- private Set<CDOObject> detachedObjects;
-
- public InvalidationEvent(long timeStamp, Map<CDOObject, CDORevisionDelta> revisionDeltas,
- Set<CDOObject> detachedObjects)
- {
- this.timeStamp = timeStamp;
- this.revisionDeltas = revisionDeltas;
- this.detachedObjects = detachedObjects;
- }
-
- public long getTimeStamp()
- {
- return timeStamp;
- }
-
- public Set<CDOObject> getDirtyObjects()
- {
- return revisionDeltas.keySet();
- }
-
- public Map<CDOObject, CDORevisionDelta> getRevisionDeltas()
- {
- return revisionDeltas;
- }
-
- public Set<CDOObject> getDetachedObjects()
- {
- return detachedObjects;
- }
-
- @Override
- public String toString()
- {
- return "CDOViewInvalidationEvent: " + revisionDeltas; //$NON-NLS-1$
- }
- }
-
- /**
- * @author Caspar De Groot
- * @since 4.1
- */
- private final class LocksChangedEvent extends DefaultLocksChangedEvent implements CDOViewLocksChangedEvent
- {
- private static final long serialVersionUID = 1L;
-
- public LocksChangedEvent(InternalCDOView sender, CDOLockChangeInfo lockChangeInfo)
- {
- super(CDOViewImpl.this, sender, lockChangeInfo);
- }
-
- @Override
- public InternalCDOView getSource()
- {
- return (InternalCDOView)super.getSource();
- }
- }
-
- /**
- * @author Eike Stepper
- * @since 2.0
- */
- protected class OptionsImpl extends Notifier implements Options
- {
- private boolean loadNotificationEnabled;
-
- private boolean detachmentNotificationEnabled;
-
- private boolean invalidationNotificationEnabled;
-
- private CDOInvalidationPolicy invalidationPolicy = CDOInvalidationPolicy.DEFAULT;
-
- private boolean lockNotificationsEnabled;
-
- private CDORevisionPrefetchingPolicy revisionPrefetchingPolicy = CDOUtil
- .createRevisionPrefetchingPolicy(NO_REVISION_PREFETCHING);
-
- private CDOFeatureAnalyzer featureAnalyzer = CDOFeatureAnalyzer.NOOP;
-
- private CDOStaleReferencePolicy staleReferencePolicy = CDOStaleReferencePolicy.EXCEPTION;
-
- private HashBag<CDOAdapterPolicy> changeSubscriptionPolicies = new HashBag<CDOAdapterPolicy>();
-
- private CDOAdapterPolicy strongReferencePolicy = CDOAdapterPolicy.ALL;
-
- public OptionsImpl()
- {
- setCacheReferenceType(null);
- }
-
- public CDOViewImpl getContainer()
- {
- return CDOViewImpl.this;
- }
-
- public boolean isLoadNotificationEnabled()
- {
- synchronized (CDOViewImpl.this)
- {
- return loadNotificationEnabled;
- }
- }
-
- public void setLoadNotificationEnabled(boolean enabled)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (loadNotificationEnabled != enabled)
- {
- loadNotificationEnabled = enabled;
- event = new LoadNotificationEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public boolean isDetachmentNotificationEnabled()
- {
- synchronized (CDOViewImpl.this)
- {
- return detachmentNotificationEnabled;
- }
- }
-
- public void setDetachmentNotificationEnabled(boolean enabled)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (detachmentNotificationEnabled != enabled)
- {
- detachmentNotificationEnabled = enabled;
- event = new DetachmentNotificationEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public boolean isInvalidationNotificationEnabled()
- {
- synchronized (CDOViewImpl.this)
- {
- return invalidationNotificationEnabled;
- }
- }
-
- public void setInvalidationNotificationEnabled(boolean enabled)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (invalidationNotificationEnabled != enabled)
- {
- invalidationNotificationEnabled = enabled;
- event = new InvalidationNotificationEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public CDOInvalidationPolicy getInvalidationPolicy()
- {
- synchronized (CDOViewImpl.this)
- {
- return invalidationPolicy;
- }
- }
-
- public void setInvalidationPolicy(CDOInvalidationPolicy policy)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (invalidationPolicy != policy)
- {
- invalidationPolicy = policy;
- event = new InvalidationPolicyEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public boolean isLockNotificationEnabled()
- {
- return lockNotificationsEnabled;
- }
-
- public void setLockNotificationEnabled(boolean enabled)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (enabled != lockNotificationsEnabled)
- {
- CDOSessionProtocol protocol = getSession().getSessionProtocol();
- protocol.enableLockNotifications(viewID, enabled);
- lockNotificationsEnabled = enabled;
- event = new LockNotificationEventImpl(enabled);
- }
- }
-
- fireEvent(event);
- }
-
- public boolean hasChangeSubscriptionPolicies()
- {
- synchronized (CDOViewImpl.this)
- {
- return !changeSubscriptionPolicies.isEmpty();
- }
- }
-
- public CDOAdapterPolicy[] getChangeSubscriptionPolicies()
- {
- synchronized (CDOViewImpl.this)
- {
- return changeSubscriptionPolicies.toArray(new CDOAdapterPolicy[changeSubscriptionPolicies.size()]);
- }
- }
-
- public void addChangeSubscriptionPolicy(CDOAdapterPolicy policy)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (changeSubscriptionPolicies.add(policy))
- {
- changeSubscriptionManager.notifyChangeSubcriptionPolicy();
- event = new ChangeSubscriptionPoliciesEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public void removeChangeSubscriptionPolicy(CDOAdapterPolicy policy)
- {
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (changeSubscriptionPolicies.remove(policy) && !changeSubscriptionPolicies.contains(policy))
- {
- changeSubscriptionManager.notifyChangeSubcriptionPolicy();
- event = new ChangeSubscriptionPoliciesEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public CDOAdapterPolicy getStrongReferencePolicy()
- {
- synchronized (CDOViewImpl.this)
- {
- return strongReferencePolicy;
- }
- }
-
- public void setStrongReferencePolicy(CDOAdapterPolicy adapterPolicy)
- {
- if (adapterPolicy == null)
- {
- adapterPolicy = CDOAdapterPolicy.ALL;
- }
-
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (strongReferencePolicy != adapterPolicy)
- {
- strongReferencePolicy = adapterPolicy;
- adapterManager.reset();
- event = new ReferencePolicyEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public CDORevisionPrefetchingPolicy getRevisionPrefetchingPolicy()
- {
- synchronized (CDOViewImpl.this)
- {
- return revisionPrefetchingPolicy;
- }
- }
-
- public void setRevisionPrefetchingPolicy(CDORevisionPrefetchingPolicy prefetchingPolicy)
- {
- if (prefetchingPolicy == null)
- {
- prefetchingPolicy = CDORevisionPrefetchingPolicy.NO_PREFETCHING;
- }
-
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (revisionPrefetchingPolicy != prefetchingPolicy)
- {
- revisionPrefetchingPolicy = prefetchingPolicy;
- event = new RevisionPrefetchingPolicyEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public CDOFeatureAnalyzer getFeatureAnalyzer()
- {
- synchronized (CDOViewImpl.this)
- {
- return featureAnalyzer;
- }
- }
-
- public void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer)
- {
- if (featureAnalyzer == null)
- {
- featureAnalyzer = CDOFeatureAnalyzer.NOOP;
- }
-
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (this.featureAnalyzer != featureAnalyzer)
- {
- this.featureAnalyzer = featureAnalyzer;
- event = new FeatureAnalyzerEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- @Deprecated
- public CDOStaleReferencePolicy getStaleReferenceBehaviour()
- {
- return getStaleReferencePolicy();
- }
-
- @Deprecated
- public void setStaleReferenceBehaviour(CDOStaleReferencePolicy policy)
- {
- setStaleReferencePolicy(policy);
- }
-
- public CDOStaleReferencePolicy getStaleReferencePolicy()
- {
- synchronized (CDOViewImpl.this)
- {
- return staleReferencePolicy;
- }
- }
-
- public void setStaleReferencePolicy(CDOStaleReferencePolicy policy)
- {
- if (policy == null)
- {
- policy = CDOStaleReferencePolicy.EXCEPTION;
- }
-
- IEvent event = null;
- synchronized (CDOViewImpl.this)
- {
- if (staleReferencePolicy != policy)
- {
- staleReferencePolicy = policy;
- event = new StaleReferencePolicyEventImpl();
- }
- }
-
- fireEvent(event);
- }
-
- public ReferenceType getCacheReferenceType()
- {
- synchronized (CDOViewImpl.this)
- {
- Map<CDOID, InternalCDOObject> objects = getModifiableObjects();
- if (objects instanceof ReferenceValueMap.Strong<?, ?>)
- {
- return ReferenceType.STRONG;
- }
-
- if (objects instanceof ReferenceValueMap.Soft<?, ?>)
- {
- return ReferenceType.SOFT;
- }
-
- if (objects instanceof ReferenceValueMap.Weak<?, ?>)
- {
- return ReferenceType.WEAK;
- }
-
- throw new IllegalStateException(Messages.getString("CDOViewImpl.29")); //$NON-NLS-1$
- }
- }
-
- public boolean setCacheReferenceType(ReferenceType referenceType)
- {
- if (referenceType == null)
- {
- referenceType = ReferenceType.SOFT;
- }
-
- synchronized (CDOViewImpl.this)
- {
- Map<CDOID, InternalCDOObject> objects = getModifiableObjects();
- ReferenceValueMap<CDOID, InternalCDOObject> newObjects;
-
- switch (referenceType)
- {
- case STRONG:
- if (objects instanceof ReferenceValueMap.Strong<?, ?>)
- {
- return false;
- }
-
- newObjects = new ReferenceValueMap.Strong<CDOID, InternalCDOObject>();
- break;
-
- case SOFT:
- if (objects instanceof ReferenceValueMap.Soft<?, ?>)
- {
- return false;
- }
-
- newObjects = new ReferenceValueMap.Soft<CDOID, InternalCDOObject>();
- break;
-
- case WEAK:
- if (objects instanceof ReferenceValueMap.Weak<?, ?>)
- {
- return false;
- }
-
- newObjects = new ReferenceValueMap.Weak<CDOID, InternalCDOObject>();
- break;
-
- default:
- throw new IllegalArgumentException(Messages.getString("CDOViewImpl.29")); //$NON-NLS-1$
- }
-
- if (objects == null)
- {
- setObjects(newObjects);
- }
- else
- {
- for (Entry<CDOID, InternalCDOObject> entry : objects.entrySet())
- {
- InternalCDOObject object = entry.getValue();
- if (object != null)
- {
- newObjects.put(entry.getKey(), object);
- }
- }
-
- Map<CDOID, InternalCDOObject> oldObjects = objects;
- setObjects(newObjects);
- oldObjects.clear();
- }
- }
-
- IListener[] listeners = getListeners();
- if (listeners != null)
- {
- fireEvent(new CacheReferenceTypeEventImpl(), listeners);
- }
-
- return true;
- }
-
- /**
- * @author Eike Stepper
- */
- private final class CacheReferenceTypeEventImpl extends OptionsEvent implements CacheReferenceTypeEvent
- {
- private static final long serialVersionUID = 1L;
-
- public CacheReferenceTypeEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class ChangeSubscriptionPoliciesEventImpl extends OptionsEvent implements
- ChangeSubscriptionPoliciesEvent
- {
- private static final long serialVersionUID = 1L;
-
- public ChangeSubscriptionPoliciesEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class LoadNotificationEventImpl extends OptionsEvent implements LoadNotificationEvent
- {
- private static final long serialVersionUID = 1L;
-
- public LoadNotificationEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class DetachmentNotificationEventImpl extends OptionsEvent implements DetachmenNotificationEvent
- {
- private static final long serialVersionUID = 1L;
-
- public DetachmentNotificationEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class InvalidationNotificationEventImpl extends OptionsEvent implements InvalidationNotificationEvent
- {
- private static final long serialVersionUID = 1L;
-
- public InvalidationNotificationEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class InvalidationPolicyEventImpl extends OptionsEvent implements InvalidationPolicyEvent
- {
- private static final long serialVersionUID = 1L;
-
- public InvalidationPolicyEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Caspar De Groot
- */
- private final class LockNotificationEventImpl extends OptionsEvent implements LockNotificationEvent
- {
- private static final long serialVersionUID = 1L;
-
- private boolean enabled;
-
- public LockNotificationEventImpl(boolean enabled)
- {
- super(OptionsImpl.this);
- this.enabled = enabled;
- }
-
- public boolean getEnabled()
- {
- return enabled;
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class RevisionPrefetchingPolicyEventImpl extends OptionsEvent implements
- RevisionPrefetchingPolicyEvent
- {
- private static final long serialVersionUID = 1L;
-
- public RevisionPrefetchingPolicyEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private final class FeatureAnalyzerEventImpl extends OptionsEvent implements FeatureAnalyzerEvent
- {
- private static final long serialVersionUID = 1L;
-
- public FeatureAnalyzerEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- @SuppressWarnings("deprecation")
- private final class ReferencePolicyEventImpl extends OptionsEvent implements ReferencePolicyEvent
- {
- private static final long serialVersionUID = 1L;
-
- public ReferencePolicyEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
-
- /**
- * @author Simon McDuff
- */
- private final class StaleReferencePolicyEventImpl extends OptionsEvent implements StaleReferencePolicyEvent
- {
- private static final long serialVersionUID = 1L;
-
- public StaleReferencePolicyEventImpl()
- {
- super(OptionsImpl.this);
- }
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Simon McDuff - maintenance
+ * Victor Roldan Betancort - maintenance
+ */
+package org.eclipse.emf.internal.cdo.view;
+
+import org.eclipse.emf.cdo.CDONotification;
+import org.eclipse.emf.cdo.CDOObject;
+import org.eclipse.emf.cdo.CDOState;
+import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo;
+import org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo.Operation;
+import org.eclipse.emf.cdo.common.lock.CDOLockOwner;
+import org.eclipse.emf.cdo.common.lock.CDOLockState;
+import org.eclipse.emf.cdo.common.lock.CDOLockUtil;
+import org.eclipse.emf.cdo.common.revision.CDOIDAndBranch;
+import org.eclipse.emf.cdo.common.revision.CDOIDAndVersion;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
+import org.eclipse.emf.cdo.common.revision.CDORevisionManager;
+import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
+import org.eclipse.emf.cdo.common.util.CDOCommonUtil;
+import org.eclipse.emf.cdo.common.util.CDOException;
+import org.eclipse.emf.cdo.spi.common.lock.InternalCDOLockState;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager;
+import org.eclipse.emf.cdo.transaction.CDOCommitContext;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOUtil;
+import org.eclipse.emf.cdo.util.LockTimeoutException;
+import org.eclipse.emf.cdo.util.ReadOnlyException;
+import org.eclipse.emf.cdo.util.StaleRevisionLockException;
+import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
+import org.eclipse.emf.cdo.view.CDOFeatureAnalyzer;
+import org.eclipse.emf.cdo.view.CDOInvalidationPolicy;
+import org.eclipse.emf.cdo.view.CDORevisionPrefetchingPolicy;
+import org.eclipse.emf.cdo.view.CDOStaleReferencePolicy;
+import org.eclipse.emf.cdo.view.CDOView;
+import org.eclipse.emf.cdo.view.CDOViewDurabilityChangedEvent;
+import org.eclipse.emf.cdo.view.CDOViewInvalidationEvent;
+import org.eclipse.emf.cdo.view.CDOViewLocksChangedEvent;
+
+import org.eclipse.emf.internal.cdo.bundle.OM;
+import org.eclipse.emf.internal.cdo.messages.Messages;
+import org.eclipse.emf.internal.cdo.object.CDODeltaNotificationImpl;
+import org.eclipse.emf.internal.cdo.object.CDOInvalidationNotificationImpl;
+import org.eclipse.emf.internal.cdo.object.CDONotificationBuilder;
+import org.eclipse.emf.internal.cdo.util.DefaultLocksChangedEvent;
+
+import org.eclipse.net4j.util.ObjectUtil;
+import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
+import org.eclipse.net4j.util.WrappedException;
+import org.eclipse.net4j.util.collection.HashBag;
+import org.eclipse.net4j.util.collection.Pair;
+import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
+import org.eclipse.net4j.util.concurrent.QueueRunner;
+import org.eclipse.net4j.util.event.IEvent;
+import org.eclipse.net4j.util.event.IListener;
+import org.eclipse.net4j.util.event.Notifier;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
+import org.eclipse.net4j.util.om.monitor.EclipseMonitor;
+import org.eclipse.net4j.util.om.monitor.OMMonitor;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+import org.eclipse.net4j.util.options.OptionsEvent;
+import org.eclipse.net4j.util.ref.ReferenceType;
+import org.eclipse.net4j.util.ref.ReferenceValueMap;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.notify.impl.NotificationImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.spi.cdo.CDOSessionProtocol;
+import org.eclipse.emf.spi.cdo.CDOSessionProtocol.LockObjectsResult;
+import org.eclipse.emf.spi.cdo.CDOSessionProtocol.UnlockObjectsResult;
+import org.eclipse.emf.spi.cdo.FSMUtil;
+import org.eclipse.emf.spi.cdo.InternalCDOObject;
+import org.eclipse.emf.spi.cdo.InternalCDOSession;
+import org.eclipse.emf.spi.cdo.InternalCDOTransaction;
+import org.eclipse.emf.spi.cdo.InternalCDOView;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.WeakHashMap;
+
+/**
+ * @author Eike Stepper
+ */
+public class CDOViewImpl extends AbstractCDOView
+{
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_VIEW, CDOViewImpl.class);
+
+ private int viewID;
+
+ private InternalCDOSession session;
+
+ private String durableLockingID;
+
+ private ChangeSubscriptionManager changeSubscriptionManager = new ChangeSubscriptionManager();
+
+ private AdapterManager adapterManager = new AdapterManager();
+
+ private OptionsImpl options;
+
+ private long lastUpdateTime;
+
+ private QueueRunner invalidationRunner;
+
+ private Map<CDOObject, CDOLockState> lockStates = new WeakHashMap<CDOObject, CDOLockState>();
+
+ @ExcludeFromDump
+ private InvalidationRunnerLock invalidationRunnerLock = new InvalidationRunnerLock();
+
+ private volatile boolean invalidationRunnerActive;
+
+ /**
+ * @since 2.0
+ */
+ public CDOViewImpl(CDOBranch branch, long timeStamp)
+ {
+ super(branch.getPoint(timeStamp), CDOUtil.isLegacyModeDefault());
+ options = createOptions();
+ }
+
+ public CDOViewImpl(String durableLockingID)
+ {
+ super(CDOUtil.isLegacyModeDefault());
+ this.durableLockingID = durableLockingID;
+ options = createOptions();
+ }
+
+ /**
+ * @since 2.0
+ */
+ public OptionsImpl options()
+ {
+ return options;
+ }
+
+ public int getViewID()
+ {
+ return viewID;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public void setViewID(int viewId)
+ {
+ viewID = viewId;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public InternalCDOSession getSession()
+ {
+ return session;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public void setSession(InternalCDOSession session)
+ {
+ this.session = session;
+ }
+
+ public int getSessionID()
+ {
+ return session.getSessionID();
+ }
+
+ public synchronized boolean setBranchPoint(CDOBranchPoint branchPoint)
+ {
+ checkActive();
+
+ long timeStamp = branchPoint.getTimeStamp();
+ long creationTimeStamp = getSession().getRepositoryInfo().getCreationTime();
+ if (timeStamp != UNSPECIFIED_DATE && timeStamp < creationTimeStamp)
+ {
+ throw new IllegalArgumentException(
+ MessageFormat
+ .format(
+ "timeStamp ({0}) < repository creation time ({1})", CDOCommonUtil.formatTimeStamp(timeStamp), CDOCommonUtil.formatTimeStamp(creationTimeStamp))); //$NON-NLS-1$
+ }
+
+ if (branchPoint.equals(getBranchPoint()))
+ {
+ return false;
+ }
+
+ if (TRACER.isEnabled())
+ {
+ TRACER.format("Changing view target to {0}", branchPoint); //$NON-NLS-1$
+ }
+
+ Map<CDOID, InternalCDORevision> oldRevisions = new HashMap<CDOID, InternalCDORevision>();
+ List<CDORevisionKey> allChangedObjects = new ArrayList<CDORevisionKey>();
+ List<CDOIDAndVersion> allDetachedObjects = new ArrayList<CDOIDAndVersion>();
+
+ List<InternalCDOObject> invalidObjects = getInvalidObjects(branchPoint);
+ for (InternalCDOObject object : invalidObjects)
+ {
+ InternalCDORevision revision = object.cdoRevision();
+ if (revision != null)
+ {
+ oldRevisions.put(object.cdoID(), revision);
+ }
+ }
+
+ CDOSessionProtocol sessionProtocol = getSession().getSessionProtocol();
+ OMMonitor monitor = new EclipseMonitor(new NullProgressMonitor());
+ sessionProtocol.switchTarget(viewID, branchPoint, invalidObjects, allChangedObjects, allDetachedObjects, monitor);
+
+ basicSetBranchPoint(branchPoint);
+ doInvalidate(branchPoint.getBranch(), CDOBranchPoint.UNSPECIFIED_DATE, allChangedObjects, allDetachedObjects,
+ oldRevisions);
+
+ IListener[] listeners = getListeners();
+ if (listeners != null)
+ {
+ fireViewTargetChangedEvent(listeners);
+ }
+
+ return true;
+ }
+
+ private List<InternalCDOObject> getInvalidObjects(CDOBranchPoint branchPoint)
+ {
+ List<InternalCDOObject> result = new ArrayList<InternalCDOObject>();
+ for (InternalCDOObject object : getModifiableObjects().values())
+ {
+ CDORevision revision = object.cdoRevision();
+ if (revision == null || !revision.isValid(branchPoint))
+ {
+ result.add(object);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * @throws InterruptedException
+ * @since 2.0
+ */
+ public synchronized void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout)
+ throws InterruptedException
+ {
+ lockObjects(objects, lockType, timeout, false);
+ }
+
+ public synchronized void lockObjects(Collection<? extends CDOObject> objects, LockType lockType, long timeout,
+ boolean recursive) throws InterruptedException
+ {
+ checkActive();
+ checkState(getTimeStamp() == CDOBranchPoint.UNSPECIFIED_DATE, "Locking not supported for historial views");
+
+ List<CDORevisionKey> revisionKeys = new LinkedList<CDORevisionKey>();
+ List<CDOLockState> locksOnNewObjects = new LinkedList<CDOLockState>();
+ for (CDOObject object : objects)
+ {
+ if (FSMUtil.isNew(object))
+ {
+ CDOLockState lockState = createUpdatedLockStateForNewObject(object, lockType, true);
+ locksOnNewObjects.add(lockState);
+ }
+ else
+ {
+ InternalCDORevision revision = getRevision(object);
+ if (revision != null)
+ {
+ revisionKeys.add(revision);
+ }
+ }
+ }
+
+ LockObjectsResult result = null;
+ if (!revisionKeys.isEmpty())
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ result = sessionProtocol.lockObjects2(revisionKeys, viewID, getBranch(), lockType, recursive, timeout);
+
+ if (!result.isSuccessful())
+ {
+ if (result.isTimedOut())
+ {
+ throw new LockTimeoutException();
+ }
+
+ CDORevisionKey[] staleRevisions = result.getStaleRevisions();
+ if (staleRevisions != null)
+ {
+ throw new StaleRevisionLockException(staleRevisions);
+ }
+
+ throw new AssertionError("Unexpected lock result state");
+ }
+
+ if (result.isWaitForUpdate())
+ {
+ if (!getSession().options().isPassiveUpdateEnabled())
+ {
+ throw new AssertionError(
+ "Lock result requires client to wait, but client does not have passiveUpdates enabled.");
+ }
+
+ long requiredTimestamp = result.getRequiredTimestamp();
+ waitForUpdate(requiredTimestamp);
+ }
+ }
+
+ CDOLockState[] locksOnNewObjectsArray = locksOnNewObjects.toArray(new CDOLockState[locksOnNewObjects.size()]);
+ updateLockStates(locksOnNewObjectsArray);
+
+ if (result != null)
+ {
+ updateAndNotifyLockStates(Operation.LOCK, lockType, result.getTimestamp(), result.getNewLockStates());
+ }
+ }
+
+ protected void updateAndNotifyLockStates(Operation op, LockType type, long timestamp, CDOLockState[] newLockStates)
+ {
+ updateLockStates(newLockStates);
+ notifyOtherViewsAboutLockChanges(op, type, timestamp, newLockStates);
+ }
+
+ /**
+ * Updates the lock states of objects held in this view
+ */
+ protected void updateLockStates(CDOLockState[] newLockStates)
+ {
+ for (CDOLockState lockState : newLockStates)
+ {
+ Object lockedObject = lockState.getLockedObject();
+ CDOID id;
+
+ if (lockedObject instanceof CDOID)
+ {
+ id = (CDOID)lockedObject;
+ }
+ else if (lockedObject instanceof CDOIDAndBranch)
+ {
+ id = ((CDOIDAndBranch)lockedObject).getID();
+ }
+ else if (lockedObject instanceof EObject)
+ {
+ CDOObject newObj = CDOUtil.getCDOObject((EObject)lockedObject);
+ id = newObj.cdoID();
+ }
+ else
+ {
+ throw new IllegalStateException("Unexpected: " + lockedObject.getClass().getSimpleName());
+ }
+
+ InternalCDOObject object = getObject(id, false);
+ if (object != null)
+ {
+ lockStates.put(object, lockState);
+ }
+ }
+ }
+
+ /**
+ * Notifies other views of lock changes performed in this view
+ */
+ private void notifyOtherViewsAboutLockChanges(Operation op, LockType type, long timestamp, CDOLockState[] lockStates)
+ {
+ if (lockStates.length > 0)
+ {
+ CDOLockChangeInfo lockChangeInfo = makeLockChangeInfo(op, type, timestamp, lockStates);
+ getSession().handleLockNotification(lockChangeInfo, this);
+ }
+ }
+
+ private CDOLockChangeInfo makeLockChangeInfo(Operation op, LockType type, long timestamp, CDOLockState[] newLockStates)
+ {
+ return CDOLockUtil.createLockChangeInfo(timestamp, this, getBranch(), op, type, newLockStates);
+ }
+
+ public void handleLockNotification(InternalCDOView sender, CDOLockChangeInfo lockChangeInfo)
+ {
+ CDOLockChangeInfo event = null;
+
+ try
+ {
+ synchronized (this)
+ {
+ if (!options().isLockNotificationEnabled())
+ {
+ return;
+ }
+
+ if (lockChangeInfo.isInvalidateAll())
+ {
+ lockStates.clear();
+ event = lockChangeInfo;
+ return;
+ }
+
+ // If lockChangeInfo pertains to a different view, do nothing.
+ if (!lockChangeInfo.getBranch().equals(getBranch()))
+ {
+ return;
+ }
+
+ // If lockChangeInfo represents lock changes authored by this view itself, do nothing.
+ CDOLockOwner thisView = CDOLockUtil.createLockOwner(this);
+ if (lockChangeInfo.getLockOwner().equals(thisView))
+ {
+ return;
+ }
+
+ // TODO (CD) I know it is Eike's desideratum that this be done asynchronously.. but beware,
+ // this will require the tests to be fixed to listen for the view events instead of the
+ // session events.
+ updateLockStates(lockChangeInfo.getLockStates());
+ event = lockChangeInfo;
+ }
+ }
+ finally
+ {
+ if (event != null)
+ {
+ fireLocksChangedEvent(sender, event);
+ }
+ }
+ }
+
+ private void fireLocksChangedEvent(InternalCDOView sender, CDOLockChangeInfo lockChangeInfo)
+ {
+ IListener[] listeners = getListeners();
+ if (listeners != null)
+ {
+ fireEvent(new LocksChangedEvent(sender, lockChangeInfo), listeners);
+ }
+ }
+
+ protected InternalCDORevision getRevision(CDOObject object)
+ {
+ if (object.cdoState() == CDOState.NEW)
+ {
+ return null;
+ }
+
+ InternalCDORevision revision = (InternalCDORevision)object.cdoRevision();
+ if (revision == null)
+ {
+ revision = CDOStateMachine.INSTANCE.read((InternalCDOObject)object);
+ }
+
+ return revision;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType)
+ {
+ unlockObjects(objects, lockType, false);
+ }
+
+ /**
+ * Note: This may get called with objects == null, and lockType == null, which is a request to remove all locks on all
+ * objects in this view.
+ */
+ public synchronized void unlockObjects(Collection<? extends CDOObject> objects, LockType lockType, boolean recursive)
+ {
+ checkActive();
+
+ List<CDOID> objectIDs = null;
+ List<CDOLockState> locksOnNewObjects = new LinkedList<CDOLockState>();
+
+ if (objects != null)
+ {
+ objectIDs = new ArrayList<CDOID>();
+
+ for (CDOObject object : objects)
+ {
+ if (FSMUtil.isNew(object))
+ {
+ CDOLockState lockState = createUpdatedLockStateForNewObject(object, lockType, false);
+ locksOnNewObjects.add(lockState);
+ }
+ else
+ {
+ objectIDs.add(object.cdoID());
+ }
+ }
+ }
+ else
+ {
+ locksOnNewObjects.addAll(createUnlockedLockStatesForAllNewObjects());
+ }
+
+ UnlockObjectsResult result = null;
+ if (objectIDs == null || !objectIDs.isEmpty())
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ result = sessionProtocol.unlockObjects2(this, objectIDs, lockType, recursive);
+ }
+
+ CDOLockState[] locksOnNewObjectsArray = locksOnNewObjects.toArray(new CDOLockState[locksOnNewObjects.size()]);
+ updateLockStates(locksOnNewObjectsArray);
+
+ if (result != null)
+ {
+ updateAndNotifyLockStates(Operation.UNLOCK, lockType, result.getTimestamp(), result.getNewLockStates());
+ }
+ }
+
+ protected InternalCDOLockState createUpdatedLockStateForNewObject(CDOObject object, LockType lockType, boolean on)
+ {
+ throw new ReadOnlyException();
+ }
+
+ protected Collection<CDOLockState> createUnlockedLockStatesForAllNewObjects()
+ {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void unlockObjects()
+ {
+ unlockObjects(null, null);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized boolean isObjectLocked(CDOObject object, LockType lockType, boolean byOthers)
+ {
+ checkActive();
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ return sessionProtocol.isObjectLocked(this, object, lockType, byOthers);
+ }
+
+ public boolean isDurableView()
+ {
+ return durableLockingID != null;
+ }
+
+ public synchronized String getDurableLockingID()
+ {
+ return durableLockingID;
+ }
+
+ @Deprecated
+ public String enableDurableLocking(boolean enable)
+ {
+ if (enable)
+ {
+ return enableDurableLocking();
+ }
+
+ disableDurableLocking(false);
+ return null;
+ }
+
+ public String enableDurableLocking()
+ {
+ final String oldID = durableLockingID;
+
+ try
+ {
+ synchronized (this)
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ if (durableLockingID == null)
+ {
+ durableLockingID = sessionProtocol.changeLockArea(this, true);
+ }
+
+ return durableLockingID;
+ }
+ }
+ finally
+ {
+ fireDurabilityChangedEvent(oldID);
+ }
+ }
+
+ public void disableDurableLocking(boolean releaseLocks)
+ {
+ final String oldID = durableLockingID;
+
+ try
+ {
+ synchronized (this)
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ if (durableLockingID != null)
+ {
+ sessionProtocol.changeLockArea(this, false);
+ durableLockingID = null;
+
+ if (releaseLocks)
+ {
+ unlockObjects();
+ }
+ }
+ }
+ }
+ finally
+ {
+ fireDurabilityChangedEvent(oldID);
+ }
+ }
+
+ private void fireDurabilityChangedEvent(final String oldID)
+ {
+ if (!ObjectUtil.equals(oldID, durableLockingID))
+ {
+ fireEvent(new CDOViewDurabilityChangedEvent()
+ {
+ public CDOView getSource()
+ {
+ return CDOViewImpl.this;
+ }
+
+ public String getOldDurableLockingID()
+ {
+ return oldID;
+ }
+
+ public String getNewDurableLockingID()
+ {
+ return durableLockingID;
+ }
+ });
+ }
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Deprecated
+ public synchronized CDOFeatureAnalyzer getFeatureAnalyzer()
+ {
+ return options().getFeatureAnalyzer();
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Deprecated
+ public synchronized void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer)
+ {
+ options.setFeatureAnalyzer(featureAnalyzer);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public InternalCDOTransaction toTransaction()
+ {
+ checkActive();
+ if (this instanceof InternalCDOTransaction)
+ {
+ return (InternalCDOTransaction)this;
+ }
+
+ throw new ReadOnlyException(MessageFormat.format(Messages.getString("CDOViewImpl.0"), this)); //$NON-NLS-1$
+ }
+
+ public synchronized InternalCDORevision getRevision(CDOID id, boolean loadOnDemand)
+ {
+ InternalCDORevisionManager revisionManager = session.getRevisionManager();
+ int initialChunkSize = session.options().getCollectionLoadingPolicy().getInitialChunkSize();
+ CDOBranchPoint branchPoint = getBranchPointForID(id);
+ return revisionManager.getRevision(id, branchPoint, initialChunkSize, CDORevision.DEPTH_NONE, loadOnDemand);
+ }
+
+ public synchronized CDOLockState[] getLockStates(Collection<CDOID> ids)
+ {
+ return getLockStates(ids, true);
+ }
+
+ protected synchronized CDOLockState[] getLockStates(Collection<CDOID> ids, boolean loadOnDemand)
+ {
+ List<CDOID> missing = new LinkedList<CDOID>();
+ List<CDOLockState> lockStates = new LinkedList<CDOLockState>();
+ for (CDOID id : ids)
+ {
+ CDOLockState lockState = null;
+ InternalCDOObject obj = getObject(id, false);
+ if (obj != null)
+ {
+ lockState = this.lockStates.get(obj);
+ }
+
+ if (lockState != null)
+ {
+ lockStates.add(lockState);
+ }
+ else
+ {
+ missing.add(id);
+ }
+ }
+
+ if (loadOnDemand && missing.size() > 0)
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ CDOLockState[] loadedLockStates = sessionProtocol.getLockStates(viewID, missing);
+ for (CDOLockState loadedLockState : loadedLockStates)
+ {
+ lockStates.add(loadedLockState);
+ }
+ }
+
+ return lockStates.toArray(new CDOLockState[lockStates.size()]);
+ }
+
+ protected CDOLockState getLockState(CDOObject object)
+ {
+ return lockStates.get(object);
+ }
+
+ private CDOBranchPoint getBranchPointForID(CDOID id)
+ {
+ // If this view's timestamp is something other than UNSPECIFIED_DATE,
+ // then this is an 'audit' view, and so this timestamp must always be
+ // used without any concern for possible sticky-view behavior
+ CDOBranchPoint branchPoint = getBranchPoint();
+ if (branchPoint.getTimeStamp() != CDOBranchPoint.UNSPECIFIED_DATE)
+ {
+ return branchPoint;
+ }
+
+ InternalCDOSession session = getSession();
+ if (session.isSticky())
+ {
+ branchPoint = session.getCommittedSinceLastRefresh(id);
+ if (branchPoint == null)
+ {
+ branchPoint = getBranch().getPoint(session.getLastUpdateTime());
+ }
+
+ return branchPoint;
+ }
+
+ return this;
+ }
+
+ public synchronized void prefetchRevisions(CDOID id, int depth)
+ {
+ checkArg(depth != CDORevision.DEPTH_NONE, "Prefetch depth must not be zero"); //$NON-NLS-1$
+ int initialChunkSize = session.options().getCollectionLoadingPolicy().getInitialChunkSize();
+ prefetchRevisions(id, depth, initialChunkSize);
+ }
+
+ protected void prefetchRevisions(CDOID id, int depth, int initialChunkSize)
+ {
+ CDORevisionManager revisionManager = session.getRevisionManager();
+ revisionManager.getRevision(id, this, initialChunkSize, depth, true);
+ }
+
+ /*
+ * Must not by synchronized on the view!
+ */
+ public/* synchronized */void invalidate(CDOBranch branch, long lastUpdateTime,
+ List<CDORevisionKey> allChangedObjects, List<CDOIDAndVersion> allDetachedObjects,
+ Map<CDOID, InternalCDORevision> oldRevisions, boolean async)
+ {
+ if (async)
+ {
+ QueueRunner runner = getInvalidationRunner();
+ runner.addWork(new InvalidationRunnable(branch, lastUpdateTime, allChangedObjects, allDetachedObjects,
+ oldRevisions));
+ }
+ else
+ {
+ doInvalidate(branch, lastUpdateTime, allChangedObjects, allDetachedObjects, oldRevisions);
+ }
+ }
+
+ protected synchronized void doInvalidate(CDOBranch branch, long lastUpdateTime,
+ List<CDORevisionKey> allChangedObjects, List<CDOIDAndVersion> allDetachedObjects,
+ Map<CDOID, InternalCDORevision> oldRevisions)
+ {
+ try
+ {
+ if (ObjectUtil.equals(branch, getBranch()))
+ {
+ Map<CDOObject, Pair<CDORevision, CDORevisionDelta>> conflicts = null;
+ List<CDORevisionDelta> deltas = new ArrayList<CDORevisionDelta>();
+ Map<CDOObject, CDORevisionDelta> revisionDeltas = new HashMap<CDOObject, CDORevisionDelta>();
+ Set<CDOObject> detachedObjects = new HashSet<CDOObject>();
+
+ conflicts = invalidate(lastUpdateTime, allChangedObjects, allDetachedObjects, deltas, revisionDeltas,
+ detachedObjects);
+
+ sendInvalidationNotifications(revisionDeltas.keySet(), detachedObjects);
+ fireInvalidationEvent(lastUpdateTime, Collections.unmodifiableMap(revisionDeltas),
+ Collections.unmodifiableSet(detachedObjects));
+
+ // First handle the conflicts, if any.
+ if (conflicts != null)
+ {
+ handleConflicts(conflicts, deltas);
+ }
+
+ // Then send the notifications. The deltas could have been modified by the conflict resolvers.
+ if (!deltas.isEmpty() || !detachedObjects.isEmpty())
+ {
+ sendDeltaNotifications(deltas, detachedObjects, oldRevisions);
+ }
+
+ fireAdaptersNotifiedEvent(lastUpdateTime);
+ }
+ }
+ finally
+ {
+ setLastUpdateTime(lastUpdateTime);
+ }
+ }
+
+ private QueueRunner getInvalidationRunner()
+ {
+ synchronized (invalidationRunnerLock)
+ {
+ if (invalidationRunner == null)
+ {
+ invalidationRunner = createInvalidationRunner();
+ invalidationRunner.activate();
+ }
+ }
+
+ return invalidationRunner;
+ }
+
+ private QueueRunner createInvalidationRunner()
+ {
+ return new QueueRunner()
+ {
+ @Override
+ protected String getThreadName()
+ {
+ return "InvalidationRunner-" + CDOViewImpl.this; //$NON-NLS-1$
+ }
+
+ @Override
+ public String toString()
+ {
+ return getThreadName();
+ }
+ };
+ }
+
+ public boolean isInvalidationRunnerActive()
+ {
+ return invalidationRunnerActive;
+ }
+
+ private void sendInvalidationNotifications(Set<CDOObject> dirtyObjects, Set<CDOObject> detachedObjects)
+ {
+ if (options().isInvalidationNotificationEnabled())
+ {
+ for (CDOObject dirtyObject : dirtyObjects)
+ {
+ if (((InternalCDOObject)dirtyObject).eNotificationRequired())
+ {
+ CDOInvalidationNotificationImpl notification = new CDOInvalidationNotificationImpl(dirtyObject);
+ dirtyObject.eNotify(notification);
+ }
+ }
+
+ for (CDOObject detachedObject : detachedObjects)
+ {
+ if (((InternalCDOObject)detachedObject).eNotificationRequired())
+ {
+ CDOInvalidationNotificationImpl notification = new CDOInvalidationNotificationImpl(detachedObject);
+ detachedObject.eNotify(notification);
+ }
+ }
+ }
+ }
+
+ /**
+ * @since 2.0
+ */
+ private void fireInvalidationEvent(long timeStamp, Map<CDOObject, CDORevisionDelta> revisionDeltas,
+ Set<CDOObject> detachedObjects)
+ {
+ if (!revisionDeltas.isEmpty() || !detachedObjects.isEmpty())
+ {
+ IListener[] listeners = getListeners();
+ if (listeners != null)
+ {
+ fireEvent(new InvalidationEvent(timeStamp, revisionDeltas, detachedObjects), listeners);
+ }
+ }
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void sendDeltaNotifications(Collection<CDORevisionDelta> deltas, Set<CDOObject> detachedObjects,
+ Map<CDOID, InternalCDORevision> oldRevisions)
+ {
+ if (deltas != null)
+ {
+ CDONotificationBuilder builder = new CDONotificationBuilder(this);
+ Map<CDOID, InternalCDOObject> objects = getModifiableObjects();
+ for (CDORevisionDelta delta : deltas)
+ {
+ CDOID id = delta.getID();
+ InternalCDOObject object = objects.get(id);
+ if (object != null && object.eNotificationRequired())
+ {
+ // if (!isLocked(object))
+ {
+ InternalCDORevision oldRevision = null;
+ if (oldRevisions != null)
+ {
+ oldRevision = oldRevisions.get(id);
+ }
+
+ NotificationChain notification = builder.buildNotification(object, oldRevision, delta, detachedObjects);
+ if (notification != null)
+ {
+ notification.dispatch();
+ }
+ }
+ }
+ }
+ }
+
+ if (detachedObjects != null)
+ {
+ if (options().isDetachmentNotificationEnabled())
+ {
+ for (CDOObject detachedObject : detachedObjects)
+ {
+ InternalCDOObject object = (InternalCDOObject)detachedObject;
+ if (object.eNotificationRequired())
+ {
+ // if (!isLocked(object))
+ {
+ NotificationImpl notification = new CDODeltaNotificationImpl(object, CDONotification.DETACH_OBJECT,
+ Notification.NO_FEATURE_ID, null, null);
+ notification.dispatch();
+ }
+ }
+ }
+ }
+
+ getChangeSubscriptionManager().handleDetachedObjects(detachedObjects);
+ }
+ }
+
+ /**
+ * TODO For this method to be useable locks must be cached locally!
+ */
+ @SuppressWarnings("unused")
+ private boolean isLocked(InternalCDOObject object)
+ {
+ if (object.cdoWriteLock().isLocked())
+ {
+ return true;
+ }
+
+ if (object.cdoReadLock().isLocked())
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected final AdapterManager getAdapterManager()
+ {
+ return adapterManager;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void handleAddAdapter(InternalCDOObject eObject, Adapter adapter)
+ {
+ if (!FSMUtil.isNew(eObject))
+ {
+ subscribe(eObject, adapter);
+ }
+
+ adapterManager.attachAdapter(eObject, adapter);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void handleRemoveAdapter(InternalCDOObject eObject, Adapter adapter)
+ {
+ if (!FSMUtil.isNew(eObject))
+ {
+ unsubscribe(eObject, adapter);
+ }
+
+ adapterManager.detachAdapter(eObject, adapter);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void subscribe(EObject eObject, Adapter adapter)
+ {
+ changeSubscriptionManager.subscribe(eObject, adapter);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized void unsubscribe(EObject eObject, Adapter adapter)
+ {
+ changeSubscriptionManager.unsubscribe(eObject, adapter);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public synchronized boolean hasSubscription(CDOID id)
+ {
+ return changeSubscriptionManager.getSubcribeObject(id) != null;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected final ChangeSubscriptionManager getChangeSubscriptionManager()
+ {
+ return changeSubscriptionManager;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected OptionsImpl createOptions()
+ {
+ return new OptionsImpl();
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ protected void doBeforeActivate() throws Exception
+ {
+ super.doBeforeActivate();
+ checkState(session, "session"); //$NON-NLS-1$
+ checkState(viewID > 0, "viewID"); //$NON-NLS-1$
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ protected void doActivate() throws Exception
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ if (durableLockingID != null)
+ {
+ CDOBranchPoint branchPoint = sessionProtocol.openView(viewID, isReadOnly(), durableLockingID);
+ basicSetBranchPoint(branchPoint);
+ }
+ else
+ {
+ sessionProtocol.openView(viewID, isReadOnly(), this);
+ }
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ protected void doDeactivate() throws Exception
+ {
+ if (invalidationRunner != null)
+ {
+ LifecycleUtil.deactivate(invalidationRunner, OMLogger.Level.WARN);
+ invalidationRunner = null;
+ }
+
+ try
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ if (LifecycleUtil.isActive(sessionProtocol))
+ {
+ sessionProtocol.closeView(viewID);
+ }
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ }
+
+ try
+ {
+ session.viewDetached(this);
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ }
+
+ changeSubscriptionManager = null;
+ options = null;
+ super.doDeactivate();
+ }
+
+ public synchronized long getLastUpdateTime()
+ {
+ return lastUpdateTime;
+ }
+
+ public synchronized void setLastUpdateTime(long lastUpdateTime)
+ {
+ if (this.lastUpdateTime < lastUpdateTime)
+ {
+ this.lastUpdateTime = lastUpdateTime;
+ }
+
+ notifyAll();
+ }
+
+ public boolean waitForUpdate(long updateTime, long timeoutMillis)
+ {
+ long end = timeoutMillis == NO_TIMEOUT ? Long.MAX_VALUE : System.currentTimeMillis() + timeoutMillis;
+ synchronized (this)
+ {
+ for (;;)
+ {
+ if (lastUpdateTime >= updateTime)
+ {
+ return true;
+ }
+
+ long now = System.currentTimeMillis();
+ if (now >= end)
+ {
+ return false;
+ }
+
+ try
+ {
+ long waitMillis = end - now;
+ wait(waitMillis);
+ }
+ catch (InterruptedException ex)
+ {
+ throw WrappedException.wrap(ex);
+ }
+ }
+ }
+ }
+
+ /**
+ * @author Simon McDuff
+ * @since 2.0
+ */
+ protected final class AdapterManager
+ {
+ private Set<CDOObject> objects = new HashBag<CDOObject>();
+
+ public AdapterManager()
+ {
+ }
+
+ public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext)
+ {
+ if (options().getStrongReferencePolicy() != CDOAdapterPolicy.NONE)
+ {
+ for (CDOObject object : commitContext.getNewObjects().values())
+ {
+ attachObject(object);
+ }
+
+ for (CDOObject object : commitContext.getDetachedObjects().values())
+ {
+ detachObject(object);
+ }
+ }
+ }
+
+ private void attachObject(CDOObject object)
+ {
+ if (((InternalEObject)object).eNotificationRequired())
+ {
+ CDOAdapterPolicy strongReferencePolicy = options().getStrongReferencePolicy();
+ int count = 0;
+ for (Adapter adapter : object.eAdapters())
+ {
+ if (strongReferencePolicy.isValid(object, adapter))
+ {
+ count++;
+ }
+ }
+
+ for (int i = 0; i < count; i++)
+ {
+ objects.add(object);
+ }
+ }
+ }
+
+ private void detachObject(CDOObject object)
+ {
+ while (objects.remove(object))
+ {
+ // Do nothing
+ }
+ }
+
+ private void attachAdapter(CDOObject object, Adapter adapter)
+ {
+ if (options().getStrongReferencePolicy().isValid(object, adapter))
+ {
+ objects.add(object);
+ }
+ }
+
+ private void detachAdapter(CDOObject object, Adapter adapter)
+ {
+ if (options().getStrongReferencePolicy().isValid(object, adapter))
+ {
+ objects.remove(object);
+ }
+ }
+
+ private void reset()
+ {
+ // Keep the objects in memory
+ Set<CDOObject> oldObjects = objects;
+ objects = new HashBag<CDOObject>();
+ if (options().getStrongReferencePolicy() != CDOAdapterPolicy.NONE)
+ {
+ for (InternalCDOObject object : getObjectsList())
+ {
+ attachObject(object);
+ }
+ }
+
+ oldObjects.clear();
+ }
+ }
+
+ /**
+ * @author Simon McDuff
+ * @since 2.0
+ */
+ protected final class ChangeSubscriptionManager
+ {
+ private Map<CDOID, SubscribeEntry> subscriptions = new HashMap<CDOID, SubscribeEntry>();
+
+ public ChangeSubscriptionManager()
+ {
+ }
+
+ public void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext)
+ {
+ handleNewObjects(commitContext.getNewObjects().values());
+ handleDetachedObjects(commitContext.getDetachedObjects().values());
+ }
+
+ private void subscribe(EObject eObject, Adapter adapter)
+ {
+ subscribe(eObject, adapter, 1);
+ }
+
+ private void unsubscribe(EObject eObject, Adapter adapter)
+ {
+ subscribe(eObject, adapter, -1);
+ }
+
+ /**
+ * Register to the server all objects from the active list
+ */
+ private void notifyChangeSubcriptionPolicy()
+ {
+ boolean policiesPresent = options().hasChangeSubscriptionPolicies();
+ subscriptions.clear();
+ List<CDOID> ids = new ArrayList<CDOID>();
+ if (policiesPresent)
+ {
+ for (InternalCDOObject object : getObjectsList())
+ {
+ int count = getNumberOfValidAdapter(object);
+ if (count > 0)
+ {
+ ids.add(object.cdoID());
+ addEntry(object.cdoID(), object, count);
+ }
+ }
+ }
+
+ request(ids, true, true);
+ }
+
+ private void handleDetachedObjects(Collection<CDOObject> detachedObjects)
+ {
+ for (CDOObject detachedObject : detachedObjects)
+ {
+ CDOID id = detachedObject.cdoID();
+ SubscribeEntry entry = subscriptions.get(id);
+ if (entry != null)
+ {
+ detachObject(id);
+ }
+ }
+ }
+
+ private void handleNewObjects(Collection<? extends CDOObject> newObjects)
+ {
+ for (CDOObject object : newObjects)
+ {
+ InternalCDOObject cdoDetachedObject = (InternalCDOObject)object;
+ if (cdoDetachedObject != null)
+ {
+ int count = getNumberOfValidAdapter(cdoDetachedObject);
+ if (count > 0)
+ {
+ subscribe(cdoDetachedObject.cdoID(), cdoDetachedObject, count);
+ }
+ }
+ }
+ }
+
+ private InternalCDOObject getSubcribeObject(CDOID id)
+ {
+ SubscribeEntry entry = subscriptions.get(id);
+ if (entry != null)
+ {
+ return entry.getObject();
+ }
+
+ return null;
+ }
+
+ private void request(List<CDOID> ids, boolean clear, boolean subscribeMode)
+ {
+ CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
+ sessionProtocol.changeSubscription(getViewID(), ids, subscribeMode, clear);
+ }
+
+ private int getNumberOfValidAdapter(InternalCDOObject object)
+ {
+ int count = 0;
+ if (!FSMUtil.isTransient(object) && !FSMUtil.isNew(object))
+ {
+ if (object.eNotificationRequired())
+ {
+ for (Adapter adapter : object.eAdapters())
+ {
+ if (shouldSubscribe(object, adapter))
+ {
+ count++;
+ }
+ }
+ }
+ }
+
+ return count;
+ }
+
+ private void subscribe(EObject eObject, Adapter adapter, int adjust)
+ {
+ if (shouldSubscribe(eObject, adapter))
+ {
+ CDOView view = CDOViewImpl.this;
+ InternalCDOObject internalCDOObject = FSMUtil.adapt(eObject, view);
+ if (internalCDOObject.cdoView() != view)
+ {
+ throw new CDOException(MessageFormat.format(Messages.getString("CDOViewImpl.27"), internalCDOObject)); //$NON-NLS-1$
+ }
+
+ subscribe(internalCDOObject.cdoID(), internalCDOObject, adjust);
+ }
+ }
+
+ private boolean shouldSubscribe(EObject eObject, Adapter adapter)
+ {
+ for (CDOAdapterPolicy policy : options().getChangeSubscriptionPolicies())
+ {
+ if (policy.isValid(eObject, adapter))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private void subscribe(CDOID id, InternalCDOObject cdoObject, int adjust)
+ {
+ boolean policiesPresent = options().hasChangeSubscriptionPolicies();
+
+ int count = 0;
+ SubscribeEntry entry = subscriptions.get(id);
+ if (entry == null)
+ {
+ // Cannot adjust negative value
+ if (adjust < 0)
+ {
+ return;
+ }
+
+ // Notification need to be enable to send correct value to the server
+ if (policiesPresent)
+ {
+ request(Collections.singletonList(id), false, true);
+ }
+ }
+ else
+ {
+ count = entry.getCount();
+ }
+
+ count += adjust;
+
+ // Look if objects need to be unsubscribe
+ if (count <= 0)
+ {
+ subscriptions.remove(id);
+
+ // Notification need to be enable to send correct value to the server
+ if (policiesPresent)
+ {
+ request(Collections.singletonList(id), false, false);
+ }
+ }
+ else
+ {
+ if (entry == null)
+ {
+ addEntry(id, cdoObject, count);
+ }
+ else
+ {
+ entry.setCount(count);
+ }
+ }
+ }
+
+ private void detachObject(CDOID id)
+ {
+ subscribe(id, null, Integer.MIN_VALUE);
+ }
+
+ private void addEntry(CDOID key, InternalCDOObject object, int count)
+ {
+ subscriptions.put(key, new SubscribeEntry(object, count));
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class SubscribeEntry
+ {
+ private InternalCDOObject object;
+
+ private int count;
+
+ public SubscribeEntry(InternalCDOObject object, int count)
+ {
+ this.object = object;
+ this.count = count;
+ }
+
+ public InternalCDOObject getObject()
+ {
+ return object;
+ }
+
+ public int getCount()
+ {
+ return count;
+ }
+
+ public void setCount(int count)
+ {
+ this.count = count;
+ }
+ }
+
+ /**
+ * A separate class for better monitor debugging.
+ *
+ * @author Eike Stepper
+ */
+ private static final class InvalidationRunnerLock
+ {
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class InvalidationRunnable implements Runnable
+ {
+ private final CDOBranch branch;
+
+ private final long lastUpdateTime;
+
+ private final List<CDORevisionKey> allChangedObjects;
+
+ private final List<CDOIDAndVersion> allDetachedObjects;
+
+ private final Map<CDOID, InternalCDORevision> oldRevisions;
+
+ private InvalidationRunnable(CDOBranch branch, long lastUpdateTime, List<CDORevisionKey> allChangedObjects,
+ List<CDOIDAndVersion> allDetachedObjects, Map<CDOID, InternalCDORevision> oldRevisions)
+ {
+ this.branch = branch;
+ this.lastUpdateTime = lastUpdateTime;
+ this.allChangedObjects = allChangedObjects;
+ this.allDetachedObjects = allDetachedObjects;
+ this.oldRevisions = oldRevisions;
+ }
+
+ public void run()
+ {
+ try
+ {
+ invalidationRunnerActive = true;
+ doInvalidate(branch, lastUpdateTime, allChangedObjects, allDetachedObjects, oldRevisions);
+ }
+ finally
+ {
+ invalidationRunnerActive = false;
+ }
+ }
+ }
+
+ /**
+ * @author Simon McDuff
+ */
+ private final class InvalidationEvent extends Event implements CDOViewInvalidationEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ private long timeStamp;
+
+ private Map<CDOObject, CDORevisionDelta> revisionDeltas;
+
+ private Set<CDOObject> detachedObjects;
+
+ public InvalidationEvent(long timeStamp, Map<CDOObject, CDORevisionDelta> revisionDeltas,
+ Set<CDOObject> detachedObjects)
+ {
+ this.timeStamp = timeStamp;
+ this.revisionDeltas = revisionDeltas;
+ this.detachedObjects = detachedObjects;
+ }
+
+ public long getTimeStamp()
+ {
+ return timeStamp;
+ }
+
+ public Set<CDOObject> getDirtyObjects()
+ {
+ return revisionDeltas.keySet();
+ }
+
+ public Map<CDOObject, CDORevisionDelta> getRevisionDeltas()
+ {
+ return revisionDeltas;
+ }
+
+ public Set<CDOObject> getDetachedObjects()
+ {
+ return detachedObjects;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "CDOViewInvalidationEvent: " + revisionDeltas; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @author Caspar De Groot
+ * @since 4.1
+ */
+ private final class LocksChangedEvent extends DefaultLocksChangedEvent implements CDOViewLocksChangedEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public LocksChangedEvent(InternalCDOView sender, CDOLockChangeInfo lockChangeInfo)
+ {
+ super(CDOViewImpl.this, sender, lockChangeInfo);
+ }
+
+ @Override
+ public InternalCDOView getSource()
+ {
+ return (InternalCDOView)super.getSource();
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ * @since 2.0
+ */
+ protected class OptionsImpl extends Notifier implements Options
+ {
+ private boolean loadNotificationEnabled;
+
+ private boolean detachmentNotificationEnabled;
+
+ private boolean invalidationNotificationEnabled;
+
+ private CDOInvalidationPolicy invalidationPolicy = CDOInvalidationPolicy.DEFAULT;
+
+ private boolean lockNotificationsEnabled;
+
+ private CDORevisionPrefetchingPolicy revisionPrefetchingPolicy = CDOUtil
+ .createRevisionPrefetchingPolicy(NO_REVISION_PREFETCHING);
+
+ private CDOFeatureAnalyzer featureAnalyzer = CDOFeatureAnalyzer.NOOP;
+
+ private CDOStaleReferencePolicy staleReferencePolicy = CDOStaleReferencePolicy.EXCEPTION;
+
+ private HashBag<CDOAdapterPolicy> changeSubscriptionPolicies = new HashBag<CDOAdapterPolicy>();
+
+ private CDOAdapterPolicy strongReferencePolicy = CDOAdapterPolicy.ALL;
+
+ public OptionsImpl()
+ {
+ setCacheReferenceType(null);
+ }
+
+ public CDOViewImpl getContainer()
+ {
+ return CDOViewImpl.this;
+ }
+
+ public boolean isLoadNotificationEnabled()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return loadNotificationEnabled;
+ }
+ }
+
+ public void setLoadNotificationEnabled(boolean enabled)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (loadNotificationEnabled != enabled)
+ {
+ loadNotificationEnabled = enabled;
+ event = new LoadNotificationEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public boolean isDetachmentNotificationEnabled()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return detachmentNotificationEnabled;
+ }
+ }
+
+ public void setDetachmentNotificationEnabled(boolean enabled)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (detachmentNotificationEnabled != enabled)
+ {
+ detachmentNotificationEnabled = enabled;
+ event = new DetachmentNotificationEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public boolean isInvalidationNotificationEnabled()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return invalidationNotificationEnabled;
+ }
+ }
+
+ public void setInvalidationNotificationEnabled(boolean enabled)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (invalidationNotificationEnabled != enabled)
+ {
+ invalidationNotificationEnabled = enabled;
+ event = new InvalidationNotificationEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public CDOInvalidationPolicy getInvalidationPolicy()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return invalidationPolicy;
+ }
+ }
+
+ public void setInvalidationPolicy(CDOInvalidationPolicy policy)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (invalidationPolicy != policy)
+ {
+ invalidationPolicy = policy;
+ event = new InvalidationPolicyEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public boolean isLockNotificationEnabled()
+ {
+ return lockNotificationsEnabled;
+ }
+
+ public void setLockNotificationEnabled(boolean enabled)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (enabled != lockNotificationsEnabled)
+ {
+ CDOSessionProtocol protocol = getSession().getSessionProtocol();
+ protocol.enableLockNotifications(viewID, enabled);
+ lockNotificationsEnabled = enabled;
+ event = new LockNotificationEventImpl(enabled);
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public boolean hasChangeSubscriptionPolicies()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return !changeSubscriptionPolicies.isEmpty();
+ }
+ }
+
+ public CDOAdapterPolicy[] getChangeSubscriptionPolicies()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return changeSubscriptionPolicies.toArray(new CDOAdapterPolicy[changeSubscriptionPolicies.size()]);
+ }
+ }
+
+ public void addChangeSubscriptionPolicy(CDOAdapterPolicy policy)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (changeSubscriptionPolicies.add(policy))
+ {
+ changeSubscriptionManager.notifyChangeSubcriptionPolicy();
+ event = new ChangeSubscriptionPoliciesEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public void removeChangeSubscriptionPolicy(CDOAdapterPolicy policy)
+ {
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (changeSubscriptionPolicies.remove(policy) && !changeSubscriptionPolicies.contains(policy))
+ {
+ changeSubscriptionManager.notifyChangeSubcriptionPolicy();
+ event = new ChangeSubscriptionPoliciesEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public CDOAdapterPolicy getStrongReferencePolicy()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return strongReferencePolicy;
+ }
+ }
+
+ public void setStrongReferencePolicy(CDOAdapterPolicy adapterPolicy)
+ {
+ if (adapterPolicy == null)
+ {
+ adapterPolicy = CDOAdapterPolicy.ALL;
+ }
+
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (strongReferencePolicy != adapterPolicy)
+ {
+ strongReferencePolicy = adapterPolicy;
+ adapterManager.reset();
+ event = new ReferencePolicyEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public CDORevisionPrefetchingPolicy getRevisionPrefetchingPolicy()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return revisionPrefetchingPolicy;
+ }
+ }
+
+ public void setRevisionPrefetchingPolicy(CDORevisionPrefetchingPolicy prefetchingPolicy)
+ {
+ if (prefetchingPolicy == null)
+ {
+ prefetchingPolicy = CDORevisionPrefetchingPolicy.NO_PREFETCHING;
+ }
+
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (revisionPrefetchingPolicy != prefetchingPolicy)
+ {
+ revisionPrefetchingPolicy = prefetchingPolicy;
+ event = new RevisionPrefetchingPolicyEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public CDOFeatureAnalyzer getFeatureAnalyzer()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return featureAnalyzer;
+ }
+ }
+
+ public void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer)
+ {
+ if (featureAnalyzer == null)
+ {
+ featureAnalyzer = CDOFeatureAnalyzer.NOOP;
+ }
+
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (this.featureAnalyzer != featureAnalyzer)
+ {
+ this.featureAnalyzer = featureAnalyzer;
+ event = new FeatureAnalyzerEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ @Deprecated
+ public CDOStaleReferencePolicy getStaleReferenceBehaviour()
+ {
+ return getStaleReferencePolicy();
+ }
+
+ @Deprecated
+ public void setStaleReferenceBehaviour(CDOStaleReferencePolicy policy)
+ {
+ setStaleReferencePolicy(policy);
+ }
+
+ public CDOStaleReferencePolicy getStaleReferencePolicy()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ return staleReferencePolicy;
+ }
+ }
+
+ public void setStaleReferencePolicy(CDOStaleReferencePolicy policy)
+ {
+ if (policy == null)
+ {
+ policy = CDOStaleReferencePolicy.EXCEPTION;
+ }
+
+ IEvent event = null;
+ synchronized (CDOViewImpl.this)
+ {
+ if (staleReferencePolicy != policy)
+ {
+ staleReferencePolicy = policy;
+ event = new StaleReferencePolicyEventImpl();
+ }
+ }
+
+ fireEvent(event);
+ }
+
+ public ReferenceType getCacheReferenceType()
+ {
+ synchronized (CDOViewImpl.this)
+ {
+ Map<CDOID, InternalCDOObject> objects = getModifiableObjects();
+ if (objects instanceof ReferenceValueMap.Strong<?, ?>)
+ {
+ return ReferenceType.STRONG;
+ }
+
+ if (objects instanceof ReferenceValueMap.Soft<?, ?>)
+ {
+ return ReferenceType.SOFT;
+ }
+
+ if (objects instanceof ReferenceValueMap.Weak<?, ?>)
+ {
+ return ReferenceType.WEAK;
+ }
+
+ throw new IllegalStateException(Messages.getString("CDOViewImpl.29")); //$NON-NLS-1$
+ }
+ }
+
+ public boolean setCacheReferenceType(ReferenceType referenceType)
+ {
+ if (referenceType == null)
+ {
+ referenceType = ReferenceType.SOFT;
+ }
+
+ synchronized (CDOViewImpl.this)
+ {
+ Map<CDOID, InternalCDOObject> objects = getModifiableObjects();
+ ReferenceValueMap<CDOID, InternalCDOObject> newObjects;
+
+ switch (referenceType)
+ {
+ case STRONG:
+ if (objects instanceof ReferenceValueMap.Strong<?, ?>)
+ {
+ return false;
+ }
+
+ newObjects = new ReferenceValueMap.Strong<CDOID, InternalCDOObject>();
+ break;
+
+ case SOFT:
+ if (objects instanceof ReferenceValueMap.Soft<?, ?>)
+ {
+ return false;
+ }
+
+ newObjects = new ReferenceValueMap.Soft<CDOID, InternalCDOObject>();
+ break;
+
+ case WEAK:
+ if (objects instanceof ReferenceValueMap.Weak<?, ?>)
+ {
+ return false;
+ }
+
+ newObjects = new ReferenceValueMap.Weak<CDOID, InternalCDOObject>();
+ break;
+
+ default:
+ throw new IllegalArgumentException(Messages.getString("CDOViewImpl.29")); //$NON-NLS-1$
+ }
+
+ if (objects == null)
+ {
+ setObjects(newObjects);
+ }
+ else
+ {
+ for (Entry<CDOID, InternalCDOObject> entry : objects.entrySet())
+ {
+ InternalCDOObject object = entry.getValue();
+ if (object != null)
+ {
+ newObjects.put(entry.getKey(), object);
+ }
+ }
+
+ Map<CDOID, InternalCDOObject> oldObjects = objects;
+ setObjects(newObjects);
+ oldObjects.clear();
+ }
+ }
+
+ IListener[] listeners = getListeners();
+ if (listeners != null)
+ {
+ fireEvent(new CacheReferenceTypeEventImpl(), listeners);
+ }
+
+ return true;
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class CacheReferenceTypeEventImpl extends OptionsEvent implements CacheReferenceTypeEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public CacheReferenceTypeEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class ChangeSubscriptionPoliciesEventImpl extends OptionsEvent implements
+ ChangeSubscriptionPoliciesEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public ChangeSubscriptionPoliciesEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class LoadNotificationEventImpl extends OptionsEvent implements LoadNotificationEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public LoadNotificationEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class DetachmentNotificationEventImpl extends OptionsEvent implements DetachmentNotificationEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public DetachmentNotificationEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class InvalidationNotificationEventImpl extends OptionsEvent implements InvalidationNotificationEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public InvalidationNotificationEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class InvalidationPolicyEventImpl extends OptionsEvent implements InvalidationPolicyEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public InvalidationPolicyEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Caspar De Groot
+ */
+ private final class LockNotificationEventImpl extends OptionsEvent implements LockNotificationEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ private boolean enabled;
+
+ public LockNotificationEventImpl(boolean enabled)
+ {
+ super(OptionsImpl.this);
+ this.enabled = enabled;
+ }
+
+ public boolean getEnabled()
+ {
+ return enabled;
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class RevisionPrefetchingPolicyEventImpl extends OptionsEvent implements
+ RevisionPrefetchingPolicyEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public RevisionPrefetchingPolicyEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class FeatureAnalyzerEventImpl extends OptionsEvent implements FeatureAnalyzerEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public FeatureAnalyzerEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ @SuppressWarnings("deprecation")
+ private final class ReferencePolicyEventImpl extends OptionsEvent implements ReferencePolicyEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public ReferencePolicyEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+
+ /**
+ * @author Simon McDuff
+ */
+ private final class StaleReferencePolicyEventImpl extends OptionsEvent implements StaleReferencePolicyEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ public StaleReferencePolicyEventImpl()
+ {
+ super(OptionsImpl.this);
+ }
+ }
+ }
+}

Back to the top