GetMisalignmentsTask.java
/**
* Copyright (c) 2014 European Organisation for Nuclear Research (CERN), All Rights Reserved.
*/
package cern.accsoft.steering.jmad.kernel.task;
import cern.accsoft.steering.jmad.domain.result.ResultType;
import cern.accsoft.steering.jmad.kernel.cmd.Command;
import cern.accsoft.steering.jmad.kernel.cmd.EsaveCommand;
import cern.accsoft.steering.jmad.kernel.cmd.SelectCommand;
import java.util.ArrayList;
import java.util.List;
import static cern.accsoft.steering.jmad.kernel.cmd.SelectCommand.SELECT_FLAG_ERROR;
/**
* This task is intended to call kernel in order to get actual machine imperfections.
*
* @author agorzaws
*/
public class GetMisalignmentsTask extends AbstractTask {
private static final String ALL_ELEMENTS_PATTERN = "";
private final String patternToSelect;
/**
* @param patternToSelect
*/
public GetMisalignmentsTask(String patternToSelect) {
this.patternToSelect = patternToSelect;
}
public GetMisalignmentsTask() {
patternToSelect = ALL_ELEMENTS_PATTERN;
}
@Override
protected List<Command> getCommands() {
SelectCommand selectCommand = new SelectCommand();
selectCommand.setFlag(SELECT_FLAG_ERROR);
if (!ALL_ELEMENTS_PATTERN.equals(patternToSelect)) {
selectCommand.setPattern(patternToSelect);
} else {
selectCommand.setFull(true);
}
List<Command> commands = new ArrayList<Command>();
commands.add(selectCommand);
commands.add(new EsaveCommand(getOutputFile()));
return commands;
}
@Override
public ResultType getResultType() {
if (getOutputFile() == null) {
return super.getResultType();
} else {
return ResultType.TFS_RESULT;
}
}
}