blob: 04827907b5b6be0a5c1274610a7818fe96202a99 [file] [log] [blame]
/*
* 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();
}
}