* @return the new alternative
* @throws PlanningException
* if the alternative could not be added
*/
public Alternative addAlternative(ActionInfo actionInfo) throws PlanningException {
PreservationActionDefinition actionDefinition = new PreservationActionDefinition();
actionDefinition.setShortname(actionInfo.getShortname());
actionDefinition.setDescriptor(actionInfo.getDescriptor());
actionDefinition.setInfo(actionInfo.getInfo());
actionDefinition.setActionIdentifier(actionInfo.getActionIdentifier());
actionDefinition.setParams(actionInfo.getParams());
actionDefinition.setParameterInfo(actionInfo.getParameterInfo());
actionDefinition.setUrl(actionInfo.getUrl());
actionDefinition.setTargetFormatInfo(actionInfo.getTargetFormatInfo());
actionDefinition.setTargetFormat(actionInfo.getTargetFormat());
actionDefinition.setEmulated(actionInfo.isEmulated());
actionDefinition.setExecutable(actionInfo.isExecutable());
String uniqueName = plan.getAlternativesDefinition().createUniqueName(actionDefinition.getShortname());
Alternative a = Alternative.createAlternative(uniqueName, actionDefinition);
plan.getAlternativesDefinition().addAlternative(a);
return a;
}