Skip to main content
summaryrefslogtreecommitdiffstats
blob: 2a14f4ae2bdb8d52648d0ec006928e9909ae9a63 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * 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.CDOObject;
import org.eclipse.emf.cdo.common.commit.CDOChangeSetData;
import org.eclipse.emf.cdo.common.commit.CDOChangeSetDataProvider;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;

import java.util.Map;
import java.util.concurrent.ConcurrentMap;

/**
 * One in a sequence of possibly several points in time of a {@link CDOTransaction transaction} that encapsulates the
 * changes to transactional objects and that later changes can be {@link #rollback() rolled back} to.
 *
 * @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 CDOSavepoint extends CDOUserSavepoint, CDOChangeSetDataProvider
{
  /**
   * @since 3.0
   */
  public CDOTransaction getTransaction();

  public CDOSavepoint getNextSavepoint();

  public CDOSavepoint getPreviousSavepoint();

  /**
   * @since 3.0
   */
  public boolean wasDirty();

  /**
   * @since 3.0
   */
  public Map<CDOID, CDORevision> getBaseNewObjects();

  /**
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getNewObjects();

  /**
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getDetachedObjects();

  /**
   * Bug 283985 (Re-attachment)
   *
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getReattachedObjects();

  /**
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getDirtyObjects();

  /**
   * The returned map delegates to {@link #getRevisionDeltas2()} and does <b>not</b> support the following methods:
   *
   * <ul>
   * <li> {@link ConcurrentMap#putIfAbsent(Object, Object)}
   * <li> {@link ConcurrentMap#remove(Object, Object)}
   * <li> {@link ConcurrentMap#replace(Object, Object)}
   * <li> {@link ConcurrentMap#replace(Object, Object, Object)}
   * </ul>
   *
   * @since 3.0
   * @deprecated As of 4.2 use {@link #getRevisionDeltas2()} instead.
   */
  @Deprecated
  public ConcurrentMap<CDOID, CDORevisionDelta> getRevisionDeltas();

  /**
   * @since 4.2
   */
  public Map<CDOID, CDORevisionDelta> getRevisionDeltas2();

  /**
   * @since 3.0
   */
  public Map<CDOID, CDORevision> getAllBaseNewObjects();

  /**
   * Return the list of new objects from this point without objects that are removed.
   *
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getAllNewObjects();

  /**
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getAllDetachedObjects();

  /**
   * Return the list of new objects from this point.
   *
   * @since 3.0
   */
  public Map<CDOID, CDOObject> getAllDirtyObjects();

  /**
   * Return the list of all deltas without objects that are removed.
   *
   * @since 3.0
   */
  public Map<CDOID, CDORevisionDelta> getAllRevisionDeltas();

  /**
   * @since 4.0
   */
  public CDOChangeSetData getAllChangeSetData();
}

Back to the top