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 009import java.util.List; 010 011/** 012 * A reference to a Fedora 3 object. Through the methods, all metadata and datastream 013 * content is available. 014 * @author mdurbin 015 */ 016public interface ObjectReference { 017 018 /** 019 * @return all the basic object information. 020 */ 021 public ObjectInfo getObjectInfo(); 022 023 /** 024 * @return all the object properties. 025 */ 026 public ObjectProperties getObjectProperties(); 027 028 /** 029 * Lists all datastream ids. 030 * @return all datastream ids 031 */ 032 public List<String> listDatastreamIds(); 033 034 /** 035 * Gets all versions of the datastream with the given id, from oldest to newest. 036 * @param datastreamId the id (a value returned from listDatastreams()) of the 037 * datastream whose versions are being requested. 038 * @return a list of datastream versions ordered from oldest to newest. 039 */ 040 public List<DatastreamVersion> getDatastreamVersions(String datastreamId); 041}