| /* |
| * Copyright (c) 2010-2012, 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.workspace; |
| |
| import org.eclipse.emf.cdo.CDOElement.StateProvider; |
| import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; |
| import org.eclipse.emf.cdo.common.commit.CDOCommitInfo; |
| import org.eclipse.emf.cdo.common.id.CDOID; |
| 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; |
| |
| import java.util.Set; |
| |
| /** |
| * 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, StateProvider, Closeable, INotifier |
| { |
| /** |
| * @since 4.2 |
| */ |
| public int getBranchID(); |
| |
| 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>. |
| * |
| * @see CDOWorkspace#isDirty() |
| * @author Eike Stepper |
| * @since 4.1 |
| * @noextend This interface is not intended to be extended by clients. |
| * @noimplement This interface is not intended to be implemented by clients. |
| */ |
| public interface DirtyStateChangedEvent extends IEvent |
| { |
| /** |
| * @since 4.2 |
| */ |
| public CDOWorkspace getSource(); |
| |
| public boolean isDirty(); |
| } |
| |
| /** |
| * An {@link IEvent event} fired when the state of objects in the {@link CDOWorkspace workspace} change between <i>new</i>, <i>dirty</i> and <i>clean</i>. |
| * |
| * @author Eike Stepper |
| * @since 4.2 |
| * @noextend This interface is not intended to be extended by clients. |
| * @noimplement This interface is not intended to be implemented by clients. |
| */ |
| public interface ObjectStatesChangedEvent extends IEvent |
| { |
| public CDOWorkspace getSource(); |
| |
| public Set<CDOID> getChangedIDs(); |
| } |
| } |