/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE file at the root of the source * tree and available online at * * https://github.com/keeps/roda */ package org.roda.core.model; import java.util.List; import org.roda.core.common.ReturnWithExceptions; import org.roda.core.data.v2.formats.Format; import org.roda.core.data.v2.ip.AIP; import org.roda.core.data.v2.ip.DIP; import org.roda.core.data.v2.ip.DIPFile; import org.roda.core.data.v2.ip.File; import org.roda.core.data.v2.ip.Representation; import org.roda.core.data.v2.ip.metadata.DescriptiveMetadata; import org.roda.core.data.v2.ip.metadata.OtherMetadata; import org.roda.core.data.v2.ip.metadata.PreservationMetadata; import org.roda.core.data.v2.jobs.Job; import org.roda.core.data.v2.jobs.Report; import org.roda.core.data.v2.log.LogEntry; import org.roda.core.data.v2.notifications.Notification; import org.roda.core.data.v2.risks.Risk; import org.roda.core.data.v2.risks.RiskIncidence; import org.roda.core.data.v2.user.Group; import org.roda.core.data.v2.user.User; public interface ModelObserver { public ReturnWithExceptions<Void> aipCreated(AIP aip); public void aipUpdated(AIP aip); public void aipStateUpdated(AIP aip); public void aipMoved(AIP aip, String oldParentId, String newParentId); public void aipDeleted(String aipId, boolean deleteIncidences); public ReturnWithExceptions<Void> descriptiveMetadataCreated(DescriptiveMetadata descriptiveMetadataBinary); public void descriptiveMetadataUpdated(DescriptiveMetadata descriptiveMetadataBinary); public void descriptiveMetadataDeleted(String aipId, String representationId, String descriptiveMetadataBinaryId); public ReturnWithExceptions<Void> representationCreated(Representation representation); public void representationUpdated(Representation representation); public void representationDeleted(String aipId, String representationId, boolean deleteIncidences); public ReturnWithExceptions<Void> fileCreated(File file); public void fileUpdated(File file); public void fileDeleted(String aipId, String representationId, List<String> fileDirectoryPath, String fileId, boolean deleteIncidences); public ReturnWithExceptions<Void> logEntryCreated(LogEntry entry); public void userCreated(User user); public void userUpdated(User user); public void userDeleted(String userID); public void groupCreated(Group group); public void groupUpdated(Group group); public void groupDeleted(String groupID); public ReturnWithExceptions<Void> preservationMetadataCreated(PreservationMetadata preservationMetadataBinary); public void preservationMetadataUpdated(PreservationMetadata preservationMetadataBinary); public void preservationMetadataDeleted(PreservationMetadata preservationMetadataBinary); public void otherMetadataCreated(OtherMetadata otherMetadataBinary); public ReturnWithExceptions<Void> jobCreatedOrUpdated(Job job, boolean reindexJobReports); public void jobDeleted(String jobId); public ReturnWithExceptions<Void> jobReportCreatedOrUpdated(Report jobReport, Job job); public void jobReportDeleted(String jobReportId); public void aipPermissionsUpdated(AIP aip); public void dipPermissionsUpdated(DIP dip); public void transferredResourceDeleted(String transferredResourceID); public ReturnWithExceptions<Void> riskCreatedOrUpdated(Risk risk, int incidences, boolean commit); public void riskDeleted(String riskId, boolean commit); public ReturnWithExceptions<Void> riskIncidenceCreatedOrUpdated(RiskIncidence riskIncidence, boolean commit); public void riskIncidenceDeleted(String riskIncidenceId, boolean commit); public ReturnWithExceptions<Void> formatCreatedOrUpdated(Format format, boolean commit); public void formatDeleted(String formatId, boolean commit); public ReturnWithExceptions<Void> notificationCreatedOrUpdated(Notification notification); public void notificationDeleted(String notificationId); public ReturnWithExceptions<Void> dipCreated(DIP dip, boolean commit); public void dipUpdated(DIP dip, boolean commit); public void dipDeleted(String dipId, boolean commit); public ReturnWithExceptions<Void> dipFileCreated(DIPFile file); public void dipFileUpdated(DIPFile file); public void dipFileDeleted(String dipId, List<String> path, String fileId); }