package com.constellio.model.entities.records; import java.util.List; import java.util.Set; import org.joda.time.LocalDateTime; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.entities.schemas.ModifiableStructure; import com.constellio.model.services.contents.ContentVersionDataSummary; public interface Content extends ModifiableStructure { String getId(); ContentVersion getCurrentVersion(); ContentVersion getCurrentCheckedOutVersion(); ContentVersion getCurrentVersionSeenBy(User user); ContentVersion getLastMajorContentVersion(); /** * Sorted by asc version label */ List<ContentVersion> getHistoryVersions(); /** * Sorted by asc version label */ List<ContentVersion> getVersions(); Content checkOut(User user); Content checkIn(); Content cancelCheckOut(); Content checkInWithModification(ContentVersionDataSummary newVersion, boolean finalized); Content checkInWithModificationAndName(ContentVersionDataSummary newVersion, boolean finalized, String name); Content renameCurrentVersion(String newFilename); Content setVersionComment(String comment); Content setVersionModificationDatetime(LocalDateTime localDateTime); Content updateContent(User user, ContentVersionDataSummary newVersion, boolean finalize); Content updateContentWithName(User user, ContentVersionDataSummary newVersion, boolean finalize, String name); Content updateContentWithVersionAndName(User user, ContentVersionDataSummary newVersion, String version, String name); LocalDateTime getCheckoutDateTime(); String getCheckoutUserId(); boolean isDirty(); Content updateCheckedOutContent(ContentVersionDataSummary newVersion); Content updateCheckedOutContentWithName(ContentVersionDataSummary newVersion, String name); Content finalizeVersion(); ContentVersion getVersion(String version); Content deleteVersion(String versionLabel, User user); Content deleteVersion(String versionLabel); boolean isEmptyVersion(); // TODO Write a test boolean isDeleteContentVersionPossible(String version); Set<String> getHashOfAllVersions(); //List<String> getDeletedVersionHashes(); }