package com.c2kernel.lifecycle.instance; import java.util.ArrayList; import java.util.StringTokenizer; import com.c2kernel.common.AccessRightsException; import com.c2kernel.common.InvalidDataException; import com.c2kernel.common.InvalidTransitionException; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.common.PersistencyException; import com.c2kernel.graph.model.DirectedEdge; import com.c2kernel.lookup.AgentPath; import com.c2kernel.scripting.ScriptingEngineException; import com.c2kernel.utils.Logger; /** * @version $Revision: 1.23 $ $Date: 2006/03/03 13:52:21 $ * @author $Author: abranson $ */ public class XOrSplit extends Split { /** * @see java.lang.Object#Object() */ public XOrSplit() { super(); } @Override public void runNext(AgentPath agent, int itemSysKey) throws InvalidDataException, InvalidTransitionException, AccessRightsException, ObjectNotFoundException, PersistencyException { ArrayList nextsToFollow = new ArrayList(); String nexts; String scriptName = (String) getProperties().get("RoutingScriptName"); int scriptVersion = (Integer) getProperties().get("RoutingScriptVersion"); try { nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString(); } catch (ScriptingEngineException e) { Logger.error(e); throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, null); } StringTokenizer tok = new StringTokenizer(nexts,","); String[] nextsTab = new String[tok.countTokens()]; for (int i=0;i