/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.curate; import java.io.IOException; import org.dspace.content.DSpaceObject; import org.dspace.core.Context; /** * ScriptedTask describes a rather generic ability to perform an operation * upon a DSpace object. It's semantics are identical to the CurationTask interface, * but is designed to be implemented in scripting languages, rather than * Java. For this reason, the 'perform' methods are renamed to accomodate * languages (like Ruby) that lack method overloading. * * @author richardrodgers */ public interface ScriptedTask { /** * Initialize task - parameters inform the task of it's invoking curator. * Since the curator can provide services to the task, this represents * curation DI. * * @param curator the Curator controlling this task * @param taskId identifier task should use in invoking services * @throws IOException */ public void init(Curator curator, String taskId) throws IOException; /** * Perform the curation task upon passed DSO * * @param dso the DSpace object * @return status code * @throws IOException */ public int performDso(DSpaceObject dso) throws IOException; /** * Perform the curation task for passed id * * @param ctx DSpace context object * @param id persistent ID for DSpace object * @return status code * @throws IOException */ public int performId(Context ctx, String id) throws IOException; }