}
});
}
else if (sElement.equals("Goto"))
{
step = new Goto();
step.setActivity(activity);
}
else if (sElement.equals("Queue"))
{
final Flow workflow = activity.getFlow();
Assignment assignment = new Assignment(sStepName);
assignment.setActivity(activity);
assignment.setQueue(parseQueueName(XMLUtil.getStringAttr(element, "queue"), activity, m_machine));
assignment.setPriority(m_helper.parse(XMLUtil.getStringAttr(element, "priority"),
false, workflow.getPosMap(), assignment.getPriority(), m_metadata.getGlobalEnvironment()));
assignment.setAssignee(m_helper.parse(XMLUtil.getStringAttr(element, "assignee"),
false, workflow.getPosMap(), assignment.getAssignee(), m_metadata.getGlobalEnvironment()));
assignment.setOwner(m_helper.parse(XMLUtil.getStringAttr(element, "owner"),
false, workflow.getPosMap(), assignment.getOwner(), m_metadata.getGlobalEnvironment()));
assignment.setCaption(m_helper.parse(XMLUtil.getStringAttr(element, "title"),
false, workflow.getPosMap(), XMLUtil.getStringAttr(element, "caption"),
m_metadata.getGlobalEnvironment()));
assignment.setFactory((Pair)m_helper.parse(XMLUtil.getStringAttr(element, "factory"),
true, workflow.getPosMap(), assignment.getFactory(),
m_metadata.getGlobalEnvironment()));
activity.addStep(assignment);
step = loadQueue(element, assignment);
}
else if (sElement.equals("UIAction"))
{
m_helper.restoreMarker(nCookie);
throw new MetadataException("err.meta.workflow.misplacedElement",
new Object[]{sElement, activity.getFlow().getFullName()});
}
else
{
step = loadFlowMacroScript(element, sStepName, activity);
if (step == null)
{
m_helper.restoreMarker(nCookie);
throw new MetadataException("err.meta.workflow.invalidElement",
new Object[]{sElement, activity.getFlow().getFullName()});
}
}
final String sNextStepName = XMLUtil.getStringAttr(element, "next");
if (sNextStepName != null)
{
if (step == null)
{
step = new Goto();
}
final Step fstep = step;
m_flowFixupList.add(new ContextFixup(getHelper())