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.foxml;
008
009import java.io.IOException;
010
011/**
012 * An interface whose implementations serve as a mechanism to
013 * resolve internal (to fedora/FOXML) IDs.
014 * @author mdurdin
015 */
016public interface InternalIDResolver {
017
018    /**
019     * Gets the datastream for an internal ID.
020     * @param id the internal id referenced within a FOXML file.
021     * @return the binary content for the datastream referenced by the internal id
022     */
023    public CachedContent resolveInternalID(String id);
024
025    /**
026     * Closes any open resources.
027     * @throws IOException
028     */
029    public void close() throws IOException;
030}