//----------------------------------------------------------------------------//
// //
// S t e p T a s k //
// //
//----------------------------------------------------------------------------//
// <editor-fold defaultstate="collapsed" desc="hdr"> //
// Copyright © Hervé Bitteur and others 2000-2013. All rights reserved. //
// This software is released under the GNU General Public License. //
// Goto http://kenai.com/projects/audiveris to report bugs or suggestions. //
//----------------------------------------------------------------------------//
// </editor-fold>
package omr.script;
import omr.sheet.Sheet;
import omr.step.Step;
import omr.step.StepException;
import omr.step.Stepping;
import omr.step.Steps;
import java.util.Collections;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
/**
* Class {@code StepTask} performs a step on a whole score.
*
* @author Hervé Bitteur
*/
@XmlAccessorType(XmlAccessType.NONE)
public class StepTask
extends ScriptTask
{
//~ Instance fields --------------------------------------------------------
/** The step launched */
private Step step;
//~ Constructors -----------------------------------------------------------
//----------//
// StepTask //
//----------//
/**
* Create a task to apply a given step to the related sheet.
*
* @param step the step to apply
*/
public StepTask (Step step)
{
this.step = step;
}
//----------//
// StepTask //
//----------//
/** No-arg constructor needed by JAXB */
private StepTask ()
{
}
//~ Methods ----------------------------------------------------------------
//------//
// core //
//------//
@Override
public void core (final Sheet sheet)
throws StepException
{
Stepping.processScore(
Collections.singleton(step),
null,
sheet.getScore());
}
//-----------------//
// internalsString //
//-----------------//
@Override
protected String internalsString ()
{
return " step " + step + super.internalsString();
}
//--------------//
// isRecordable //
//--------------//
/**
* This is an implementation trick, because of a "chicken and egg
* problem" to allow to run the LOAD step while the sheet does not exist
* yet!
*
* @return false!
*/
@Override
boolean isRecordable ()
{
return false;
}
//---------//
// getStep // Meant for JAXB
//---------//
private String getStep ()
{
return step.getName();
}
//---------//
// setStep // Meant for JAXB
//---------//
@XmlAttribute(name = "name")
private void setStep (String name)
{
step = Steps.valueOf(name.toUpperCase());
}
}