| /* |
| * Copyright (c) 2009-2015 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 java.util.Set; |
| |
| /** |
| * A strategy used to customize the default conflict resolution behavior of {@link CDOTransaction transactions}. |
| * |
| * @see CDOTransaction.Options#addConflictResolver(CDOConflictResolver) |
| * @author Eike Stepper |
| * @since 2.0 |
| */ |
| public interface CDOConflictResolver |
| { |
| /** |
| * Returns the {@link CDOTransaction transaction} this conflict resolver is associated with. |
| */ |
| public CDOTransaction getTransaction(); |
| |
| /** |
| * Sets the {@link CDOTransaction transaction} this conflict resolver is to be associated with. |
| */ |
| public void setTransaction(CDOTransaction transaction); |
| |
| /** |
| * Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached. |
| */ |
| public void resolveConflicts(Set<CDOObject> conflicts); |
| |
| /** |
| * A mix-in interface for {@link CDOConflictResolver conflict resolvers} that need to know about non-conflicting invalidations. |
| * |
| * @author Eike Stepper |
| * @since 4.3 |
| */ |
| public interface NonConflictAware extends CDOConflictResolver |
| { |
| public void handleNonConflict(long updateTime); |
| } |
| } |