001/** 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 * 006 */ 007package org.fcrepo.migration; 008 009/** 010 * An interface for a class that processes Fedora 3 objects 011 * as an iteration of versions. The single method 012 * {@link #processObjectVersions} would be invoked once for 013 * an object providing the entire version history (ie. times 014 * with identifiable changes) in the Fedora 3 object 015 * starting from the creation and proceeding chronologically 016 * @author mdurbin 017 */ 018public interface FedoraObjectVersionHandler { 019 020 /** 021 * Invoked to process a version of a Fedora 3 object. All the metadata 022 * and content that changed from the previous version to the one 023 * represented by the current call is conventiently made available. 024 * @param versions an iterable of Objects each encapsulating everything 025 * about a single version of a Fedora 3 object. 026 * @param objectInfo information about the Fedora 3 object being processed 027 */ 028 public void processObjectVersions(Iterable<ObjectVersionReference> versions, final ObjectInfo objectInfo); 029}