diff options
Diffstat (limited to 'plugins')
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 Binary files differindex f36c3e7c66..e6cae44bd7 100644 --- a/plugins/org.eclipse.emf.cdo.doc/Tables.xlsx +++ b/plugins/org.eclipse.emf.cdo.doc/Tables.xlsx 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;"> </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;"> </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;"> </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;"> </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> + <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;"> </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;"> </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> + <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;"> </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> + <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;"> </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;"> </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;"> </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> + <td style="border-right:none;vertical-align:top;text-align:left;font:12px Arial;border-bottom:none;border-top:none;border-left:none;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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> + <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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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> + <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;"> </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> + <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;"> </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> + <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;"> </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> + <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;"> </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> + <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;"> </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: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;"> </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> + <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;"> </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: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;"> </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> + <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;"> </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: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;"> </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> + <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;"> </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: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;"> </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> + <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> -<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> <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> <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> <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> <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> <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> <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> <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> <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> -<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> <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> -<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> <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> <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> <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> <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> <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> <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> -<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> <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> <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> <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> <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> <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> <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> <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> @@ -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> -<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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> -<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> <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> <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> <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> <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> <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> <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> <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> <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> <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> -<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> <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> <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> <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> <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> </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> 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> </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> 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> </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> 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> </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> 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> </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> <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> </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> 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> </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> <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> </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> 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> </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> 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> </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> <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> </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/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> </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/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> - </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> </TABLE> 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> - </TD> + The main entry point to the API of CDO's proprietary object/relational mapper.</TD> </TR> </TABLE> 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> </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> @@ -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> - </TD> + The main entry point to the API of CDO's proprietary object/relational mapper.</TD> </TR> </TABLE> @@ -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> - </TD> + The main entry point to the API of CDO's integration with DB4O databases.</TD> </TR> </TABLE> 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> - </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> </TABLE> 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> - </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> </TABLE> 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> - </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> </TABLE> 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> </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> </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> </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> </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> </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> </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> @@ -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> </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> 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> - </TD> + 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> - </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><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> - </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><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> - </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><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> - </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> <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> - </TD> + 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> - </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><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> - </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> </TABLE> 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> </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> </TD> +<TD>The main entry point to the API of CDO's integration with DB4O databases.</TD> </TR> </TABLE> 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> </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> 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> </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> 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> </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> 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="«interface» IRepositoryManager" alt="" coords="38,100,175,140"/> -<area shape="rect" id="node2" title="«interface» IContainer (org.eclipse.net4j.util.container)" alt="" coords="5,6,208,61"/> +<area shape="rect" id="node1" href="IRepositoryProject.html" title="«interface» IRepositoryProject" alt="" coords="5,13,133,53"/> +<area shape="rect" id="node2" href="IRepositoryManager.html" title="«interface» IRepositoryManager" alt="" coords="98,117,235,157"/> +<area shape="rect" id="node3" title="«interface» 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 Binary files differindex 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 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="«interface» IRepositoryProject" alt="" coords="25,100,153,140"/> -<area shape="rect" id="node2" title="«interface» IAdaptable (org.eclipse.core.runtime)" alt="" coords="5,6,173,61"/> +<area shape="rect" id="node1" href="IRepositoryProject.html" title="«interface» IRepositoryProject" alt="" coords="25,104,153,144"/> +<area shape="rect" id="node2" href="IRepositoryManager.html" title="«interface» IRepositoryManager" alt="" coords="21,200,157,240"/> +<area shape="rect" id="node3" title="«interface» 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 Binary files differindex 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 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> </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> 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> </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> <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="«interface» IAdaptable (org.eclipse.core.runtime)" alt="" coords="22,83,191,138"/> -<area shape="rect" id="node2" title="«interface» IContainer (org.eclipse.net4j.util.container)" alt="" coords="5,5,208,59"/> -<area shape="rect" id="node3" href="IRepositoryManager.html" title="«interface» IRepositoryManager" alt="" coords="238,12,375,52"/> -<area shape="rect" id="node4" href="IRepositoryProject.html" title="«interface» IRepositoryProject" alt="" coords="243,91,371,131"/> +<area shape="rect" id="node1" title="«interface» IAdaptable (org.eclipse.core.runtime)" alt="" coords="6,5,175,59"/> +<area shape="rect" id="node2" title="«interface» IContainer (org.eclipse.net4j.util.container)" alt="" coords="208,77,411,131"/> +<area shape="rect" id="node3" href="IRepositoryManager.html" title="«interface» IRepositoryManager" alt="" coords="510,56,647,96"/> +<area shape="rect" id="node4" href="IRepositoryProject.html" title="«interface» 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> </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> </TD> +<TD>Represents a <CODE>project</CODE> that is mapped + to a CDO repository by the CDO <CODE>team provider</CODE>.</TD> </TR> </TABLE> <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 Binary files differindex 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 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> </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> <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> - </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><B><A HREF="../../../../../org/eclipse/emf/cdo/team/class-use/IRepositoryProject.html#org.eclipse.emf.cdo.team"><B>IRepositoryProject</B></A></B> <BR> - </TD> + Represents a <CODE>project</CODE> that is mapped + to a CDO repository by the CDO <CODE>team provider</CODE>.</TD> </TR> </TABLE> @@ -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> - </TD> + Represents a <CODE>project</CODE> that is mapped + to a CDO repository by the CDO <CODE>team provider</CODE>.</TD> </TR> </TABLE> 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="«interface» 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="«interface» CDOTransactionHandler1" alt="" coords="5,171,173,211"/> +<area shape="rect" id="node2" href="CDOTransactionHandler.html" title="«interface» 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> - </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> </TABLE> @@ -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 Binary files differindex 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 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> 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="«interface» CDOTransactionHandlerBase" alt="" coords="97,5,287,45"/> -<area shape="rect" id="node2" href="CDOTransactionHandler1.html" title="«interface» CDOTransactionHandler1" alt="" coords="108,84,276,124"/> -<area shape="rect" id="node3" href="CDOTransactionHandler.html" title="«interface» 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="«interface» CDOTransactionHandlerBase" alt="" coords="5,5,195,45"/> +<area shape="rect" id="node2" href="CDOTransactionHandler1.html" title="«interface» CDOTransactionHandler1" alt="" coords="133,101,301,141"/> +<area shape="rect" id="node3" href="CDOTransactionHandler.html" title="«interface» 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 Binary files differindex 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 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> </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> 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> - </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> </TABLE> 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> </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> 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> - </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 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> - </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> </TABLE> 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> - </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 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> - </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> </TABLE> 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> - 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> + 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> @@ -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> - </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 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> - </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> </TABLE> 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> - 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.</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> - 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.</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> - 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> + 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> @@ -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> - </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 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> - </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> </TABLE> 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> </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> </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> </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> @@ -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> - </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><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> - 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.</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> - 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.</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> - 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> + 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> </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> 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> </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> </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> 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"> <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> - <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> + <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> <A HREF="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" target="_top"><B>NO FRAMES</B></A> @@ -180,7 +180,7 @@ An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/ <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.CacheReferenceTypeEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> - <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> + <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> <A HREF="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" target="_top"><B>NO FRAMES</B></A> 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 Binary files differdeleted 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 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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmenNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmentNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> @@ -58,8 +58,8 @@ function windowTitle() <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> <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> - <A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> + <A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> + <A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { @@ -90,7 +90,7 @@ DETAIL: FIELD | CONSTR | 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="«interface» IOptionsEvent (org.eclipse.net4j.util.options)" alt="" coords="56,6,248,61"/> -<area shape="rect" id="node2" href="CDOView.Options.DetachmenNotificationEvent.html" title="«interface» CDOView.Options.DetachmenNotificationEvent" alt="" coords="5,100,299,140"/> +<area shape="rect" id="node1" title="«interface» IOptionsEvent (org.eclipse.net4j.util.options)" alt="" coords="57,6,249,61"/> +<area shape="rect" id="node2" href="CDOView.Options.DetachmentNotificationEvent.html" title="«interface» 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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmenNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CDOView.Options.DetachmentNotificationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> @@ -183,8 +183,8 @@ An <A HREF="../../../../../../../org.eclipse.net4j.util.doc/javadoc/org/eclipse/ <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> <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> - <A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> + <A HREF="../../../../../index.html?org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> + <A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> <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 Binary files differnew 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 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"> - <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> + <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> <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> @@ -105,7 +105,8 @@ Interface CDOView.Options.FeatureAnalyzerEvent</H2> <map id="APIVIZ" name="APIVIZ"> <area shape="rect" id="node1" title="«interface» IOptionsEvent (org.eclipse.net4j.util.options)" alt="" coords="39,6,231,61"/> -<area shape="rect" id="node2" href="CDOView.Options.FeatureAnalyzerEvent.html" title="«interface» CDOView.Options.FeatureAnalyzerEvent" alt="" coords="5,100,264,140"/> +<area shape="rect" id="node2" href="CDOView.Options.FeatureAnalyzerEvent.html" title="«interface» CDOView.Options.FeatureAnalyzerEvent" alt="" coords="5,104,264,144"/> +<area shape="rect" id="node3" href="CDOView.Options.html" title="«interface» 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"> - <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmenNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> + <A HREF="../../../../../org/eclipse/emf/cdo/view/CDOView.Options.DetachmentNotificationEvent.html" title="interface in org.eclipse.emf.cdo.view"><B>PREV CLASS</B></A> <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> 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 Binary files differindex 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 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="«interface» CDOAdapterPolicy" alt="" coords="103,5,233,45"/> <area shape="rect" id="node2" href="../common/CDOCommonView.Options.html" title="«interface» CDOCommonView.Options (org.eclipse.emf.cdo.common)" alt="" coords="69,65,267,119"/> -<area shape="rect" id="node3" href="CDOInvalidationPolicy.html" title="«interface» CDOInvalidationPolicy" alt="" coords="905,112,1055,152"/> -<area shape="rect" id="node4" href="CDORevisionPrefetchingPolicy.html" title="«interface» CDORevisionPrefetchingPolicy" alt="" coords="881,175,1079,215"/> -<area shape="rect" id="node5" href="CDOStaleReferencePolicy.html" title="«interface» CDOStaleReferencePolicy" alt="" coords="893,233,1067,273"/> -<area shape="rect" id="node6" href="../transaction/CDOTransaction.Options.html" title="«interface» CDOTransaction.Options (org.eclipse.emf.cdo.transaction)" alt="" coords="875,293,1085,347"/> +<area shape="rect" id="node3" href="CDOInvalidationPolicy.html" title="«interface» CDOInvalidationPolicy" alt="" coords="905,141,1055,181"/> +<area shape="rect" id="node4" href="CDORevisionPrefetchingPolicy.html" title="«interface» CDORevisionPrefetchingPolicy" alt="" coords="881,204,1079,244"/> +<area shape="rect" id="node5" href="CDOStaleReferencePolicy.html" title="«interface» CDOStaleReferencePolicy" alt="" coords="893,263,1067,303"/> +<area shape="rect" id="node6" href="../transaction/CDOTransaction.Options.html" title="«interface» CDOTransaction.Options (org.eclipse.emf.cdo.transaction)" alt="" coords="875,322,1085,377"/> <area shape="rect" id="node7" href="CDOView.html" title="«interface» CDOView" alt="" coords="125,139,211,179"/> -<area shape="rect" id="node8" href="CDOView.Options.html" title="«interface» CDOView.Options" alt="" coords="550,227,677,267"/> +<area shape="rect" id="node8" href="CDOView.Options.html" title="«interface» CDOView.Options" alt="" coords="550,256,677,296"/> <area shape="rect" id="node9" href="CDOView.Options.CacheReferenceTypeEvent.html" title="«interface» CDOView.Options.CacheReferenceTypeEvent" alt="" coords="25,197,311,237"/> <area shape="rect" id="node10" href="CDOView.Options.ChangeSubscriptionPoliciesEvent.html" title="«interface» CDOView.Options.ChangeSubscriptionPoliciesEvent" alt="" coords="5,256,331,296"/> -<area shape="rect" id="node11" href="CDOView.Options.InvalidationNotificationEvent.html" title="«interface» CDOView.Options.InvalidationNotificationEvent" alt="" coords="23,315,313,355"/> -<area shape="rect" id="node12" href="CDOView.Options.InvalidationPolicyEvent.html" title="«interface» CDOView.Options.InvalidationPolicyEvent" alt="" coords="37,373,299,413"/> -<area shape="rect" id="node13" href="CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="«interface» CDOView.Options.RevisionPrefetchingPolicyEvent" alt="" coords="12,432,324,472"/> -<area shape="rect" id="node14" href="CDOView.Options.StaleReferencePolicyEvent.html" title="«interface» CDOView.Options.StaleReferencePolicyEvent" alt="" coords="25,491,311,531"/> -<area shape="rect" id="node15" href="CDOView.Options.StrongReferencePolicyEvent.html" title="«interface» CDOView.Options.StrongReferencePolicyEvent" alt="" coords="21,549,315,589"/> -<area shape="rect" id="node16" href="CDOViewAdaptersNotifiedEvent.html" title="«interface» CDOViewAdaptersNotifiedEvent" alt="" coords="877,367,1083,407"/> -<area shape="rect" id="node17" title="«enum» ReferenceType (org.eclipse.net4j.util.ref)" alt="" coords="898,426,1062,481"/> +<area shape="rect" id="node11" href="CDOView.Options.FeatureAnalyzerEvent.html" title="«interface» CDOView.Options.FeatureAnalyzerEvent" alt="" coords="39,315,297,355"/> +<area shape="rect" id="node12" href="CDOView.Options.InvalidationNotificationEvent.html" title="«interface» CDOView.Options.InvalidationNotificationEvent" alt="" coords="23,373,313,413"/> +<area shape="rect" id="node13" href="CDOView.Options.InvalidationPolicyEvent.html" title="«interface» CDOView.Options.InvalidationPolicyEvent" alt="" coords="37,432,299,472"/> +<area shape="rect" id="node14" href="CDOView.Options.RevisionPrefetchingPolicyEvent.html" title="«interface» CDOView.Options.RevisionPrefetchingPolicyEvent" alt="" coords="12,491,324,531"/> +<area shape="rect" id="node15" href="CDOView.Options.StaleReferencePolicyEvent.html" title="«interface» CDOView.Options.StaleReferencePolicyEvent" alt="" coords="25,549,311,589"/> +<area shape="rect" id="node16" href="CDOView.Options.StrongReferencePolicyEvent.html" title="«interface» CDOView.Options.StrongReferencePolicyEvent" alt="" coords="21,608,315,648"/> +<area shape="rect" id="node17" href="CDOViewAdaptersNotifiedEvent.html" title="«interface» CDOViewAdaptersNotifiedEvent" alt="" coords="877,396,1083,436"/> +<area shape="rect" id="node18" title="«enum» 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 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> 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> - </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 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 Binary files differindex 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 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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </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> </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> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> @@ -58,8 +58,8 @@ function windowTitle() PREV 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> - <A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> + <A HREF="../../../../../../index.html?org/eclipse/emf/cdo/view/\class-useCDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> + <A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> <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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </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> </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> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> @@ -117,8 +117,8 @@ No usage of org.eclipse.emf.cdo.view.CDOView.Options.DetachmenNotificationEvent PREV 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> - <A HREF="CDOView.Options.DetachmenNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> + <A HREF="../../../../../../index.html?org/eclipse/emf/cdo/view/\class-useCDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>FRAMES</B></A> + <A HREF="CDOView.Options.DetachmentNotificationEvent.html" target="_top"><B>NO FRAMES</B></A> <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> </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> <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> </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> <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> <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> </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> </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> <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> </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> <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="«interface» IEvent (org.eclipse.net4j.util.event)" alt="" coords="46,6,225,61"/> -<area shape="rect" id="node2" href="CDOWorkspace.DirtyStateChangedEvent.html" title="«interface» CDOWorkspace.DirtyStateChangedEvent" alt="" coords="5,100,267,140"/> +<area shape="rect" id="node1" title="«interface» IEvent (org.eclipse.net4j.util.event)" alt="" coords="5,6,184,61"/> +<area shape="rect" id="node2" href="CDOWorkspace.DirtyStateChangedEvent.html" title="«interface» CDOWorkspace.DirtyStateChangedEvent" alt="" coords="52,117,313,157"/> +<area shape="rect" id="node3" href="CDOWorkspace.html" title="«interface» 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 Binary files differindex 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 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="«interface» INotifier (org.eclipse.net4j.util.event)" alt="" coords="5,6,184,61"/> <area shape="rect" id="node2" title="«interface» Closeable (org.eclipse.net4j.util.collection)" alt="" coords="215,6,420,61"/> -<area shape="rect" id="node3" href="CDOWorkspace.html" title="«interface» CDOWorkspace" alt="" coords="259,100,375,140"/> -<area shape="rect" id="node4" href="../common/revision/CDORevisionProvider.html" title="«interface» CDORevisionProvider (org.eclipse.emf.cdo.common.revision)" alt="" coords="450,6,693,61"/> +<area shape="rect" id="node3" href="CDOWorkspace.DirtyStateChangedEvent.html" title="«interface» CDOWorkspace.DirtyStateChangedEvent" alt="" coords="187,200,448,240"/> +<area shape="rect" id="node4" href="CDOWorkspace.html" title="«interface» CDOWorkspace" alt="" coords="259,104,375,144"/> +<area shape="rect" id="node5" href="../common/revision/CDORevisionProvider.html" title="«interface» 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> - </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> </TABLE> 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 Binary files differindex 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 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> </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> <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> </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/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> </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> 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> </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> 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> </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> 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="«static» 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> </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> <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="«interface» 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> </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 <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> </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> <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> </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/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> </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> </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> </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<OBJECT>"/>
- <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<OBJECT>"/> + <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); + } + } + } +} |