/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.versioning.service;
import org.dspace.content.Item;
import org.dspace.core.Context;
import org.dspace.versioning.Version;
import org.dspace.versioning.VersionHistory;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
/**
*
*
* @author Fabio Bolognesi (fabio at atmire dot com)
* @author Mark Diggory (markd at atmire dot com)
* @author Ben Bosman (ben at atmire dot com)
*/
public interface VersioningService {
Version createNewVersion(Context c, Item itemId);
Version createNewVersion(Context c, Item itemId, String summary);
/**
* Returns all versions of a version history.
* To keep version numbers stable we do not delete versions, we do only set
* the item, date, summary and eperson null. This methods returns only those
* versions that have an item assigned.
*
* @param c
* The relevant DSpace Context.
* @param vh
* version history
* @return All versions of a version history that have an item assigned.
* @throws SQLException
* An exception that provides information on a database access error or other errors.
*/
List<Version> getVersionsByHistory(Context c, VersionHistory vh) throws SQLException;
void removeVersion(Context c, Version version) throws SQLException;
void removeVersion(Context c, Item item) throws SQLException;
Version getVersion(Context c, int versionID) throws SQLException;
Version restoreVersion(Context c, Version version);
Version restoreVersion(Context c, Version version, String summary);
Version updateVersion(Context c, Item itemId, String summary) throws SQLException;
Version getVersion(Context c, Item item) throws SQLException;
Version createNewVersion(Context context, VersionHistory history, Item item, String summary, Date date, int versionNumber);
}