package org.eclipse.emf.emfstore.client.model.util; import java.util.List; import org.eclipse.emf.emfstore.common.filetransfer.FileChunk; import org.eclipse.emf.emfstore.common.filetransfer.FileTransferInformation; import org.eclipse.emf.emfstore.common.model.EMFStoreProperty; import org.eclipse.emf.emfstore.common.model.Project; import org.eclipse.emf.emfstore.server.accesscontrol.Permission; import org.eclipse.emf.emfstore.server.exceptions.EmfStoreException; import org.eclipse.emf.emfstore.server.exceptions.InvalidVersionSpecException; import org.eclipse.emf.emfstore.server.model.ProjectHistory; import org.eclipse.emf.emfstore.server.model.ProjectId; import org.eclipse.emf.emfstore.server.model.ProjectInfo; import org.eclipse.emf.emfstore.server.model.accesscontrol.ACOrgUnitId; import org.eclipse.emf.emfstore.server.model.accesscontrol.ACUser; import org.eclipse.emf.emfstore.server.model.accesscontrol.OrgUnitProperty; import org.eclipse.emf.emfstore.server.model.accesscontrol.PermissionSet; import org.eclipse.emf.emfstore.server.model.operation.Operation; import org.eclipse.emf.emfstore.server.model.versioning.ChangePackage; import org.eclipse.emf.emfstore.server.model.versioning.HistoryInfo; import org.eclipse.emf.emfstore.server.model.versioning.HistoryQuery; import org.eclipse.emf.emfstore.server.model.versioning.LogMessage; import org.eclipse.emf.emfstore.server.model.versioning.PrimaryVersionSpec; import org.eclipse.emf.emfstore.server.model.versioning.TagVersionSpec; import org.eclipse.emf.emfstore.server.model.versioning.VersionSpec; /** * EMF store interface * * @author boehlke * */ public interface EmfStoreInterface { List<ProjectInfo> getProjectList() throws EmfStoreException; Project getProject(ProjectId projectId, VersionSpec versionSpec) throws EmfStoreException; PrimaryVersionSpec createVersion(ProjectId projectId, PrimaryVersionSpec baseVersionSpec, ChangePackage changePackage, LogMessage logMessage) throws EmfStoreException, InvalidVersionSpecException; PrimaryVersionSpec resolveVersionSpec(ProjectId projectId, VersionSpec versionSpec) throws EmfStoreException; List<ChangePackage> getChanges(ProjectId projectId, VersionSpec source, VersionSpec target) throws EmfStoreException; List<HistoryInfo> getHistoryInfo(ProjectId projectId, HistoryQuery historyQuery) throws EmfStoreException; void addTag(ProjectId projectId, PrimaryVersionSpec versionSpec, TagVersionSpec tag) throws EmfStoreException; void removeTag(ProjectId projectId, PrimaryVersionSpec versionSpec, TagVersionSpec tag) throws EmfStoreException; ProjectInfo createEmptyProject(String name, String description, LogMessage logMessage) throws EmfStoreException; ProjectInfo createProject(String name, String description, LogMessage logMessage, Project project) throws EmfStoreException; void deleteProject(ProjectId projectId, boolean deleteFiles) throws EmfStoreException; ACUser resolveUser(ACOrgUnitId id) throws EmfStoreException; ProjectId importProjectHistoryToServer(ProjectHistory projectHistory) throws EmfStoreException; ProjectHistory exportProjectHistoryFromServer(ProjectId projectId) throws EmfStoreException; FileTransferInformation uploadFileChunk(ProjectId projectId, FileChunk fileChunk) throws EmfStoreException; FileChunk downloadFileChunk(ProjectId projectId, FileTransferInformation fileInformation) throws EmfStoreException; void transmitProperty(OrgUnitProperty changedProperty, ACUser tmpUser, ProjectId projectId) throws EmfStoreException; void transmitEMFProperties(List<EMFStoreProperty> property, ProjectId projectId) throws EmfStoreException; List<EMFStoreProperty> getEMFProperties(ProjectId projectId) throws EmfStoreException; PermissionSet getPermissionSet() throws EmfStoreException; <T> T executeOperation(Operation<T> op) throws EmfStoreException; List<Permission[]> getOperationPermissions(Operation<?>[] operations) throws EmfStoreException; }