/** * 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.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * Annotation type for CurationTasks. A task is suspendable if it may * be suspended (halted) when a condition detected by the curation framework * occurs. The current implementation monitors and uses the status code * returned from the task to determine suspension, together with the * 'invocation mode' - optionally set by the caller on the curation object. * Thus, it effectively means that if a task is iterating over a collection, * the first error, or failure will halt the process. * This ensures that the status code and result of the failure are preserved. * * @author richardrodgers */ @Documented @Retention(RetentionPolicy.RUNTIME) public @interface Suspendable { // by default, suspension occurs however task is invoked Curator.Invoked invoked() default Curator.Invoked.ANY; // by default, either ERROR or FAILURE status codes trigger suspension int[] statusCodes() default {-1, 1}; }