{
buildErrorContext(p_oRequestContext, p_oResultMap);
p_oResultMap.put(STATUS, "failure");
p_oResultMap.put(REASON, "command parameters not found");
throw new AJAXException("command parameters not found");
}
// Tokenize the commands into single commands
StringTokenizer a_oCommandTok = new StringTokenizer(a_sCommands,
COMMAND_TOKEN);
// Process each command
while (a_oCommandTok.hasMoreTokens())
{
// Get the token
String a_sCommand = a_oCommandTok.nextToken();
// Strip off the opening (
a_sCommand = a_sCommand.substring(1);
// Tokenize the single commands into parameters
StringTokenizer a_oParamTok = new StringTokenizer(a_sCommand,
PARAM_TOKEN);
if (a_oParamTok == null || a_oParamTok.hasMoreTokens() == false)
{
buildErrorContext(p_oRequestContext, p_oResultMap);
p_oResultMap.put(STATUS, "failure");
p_oResultMap.put(REASON, "incorrect url request");
throw new AJAXException("incorrect url request");
}
// Get the action - which is the first item in the list
String a_sAction = a_oParamTok.nextToken();
// Lookup the action from the action map
Object a_oActionObject = actionMap.get(a_sAction);
if (a_oActionObject == null
&& !(a_oActionObject instanceof AjaxAction))
{
buildErrorContext(p_oRequestContext, p_oResultMap);
p_oResultMap.put(REASON, "unknown action requested==>"
+ a_sAction);
throw new AJAXException("unknown action requested==>"
+ a_sAction);
}
AjaxAction a_oAction = (AjaxAction) a_oActionObject;
JetspeedRequestContext a_oJetspeedRequestContext = (JetspeedRequestContext) p_oRequestContext;
// Process each parameter for this action
while (a_oParamTok.hasMoreTokens())
{
String a_sName = a_oParamTok.nextToken(VALUE_TOKEN);
// Strip of the leading ; if present
if (a_sName.indexOf(';') >= 0)
{
a_sName = a_sName.substring(1);
}
String a_sValue = a_oParamTok.nextToken();
// Put the parameters on the request context
a_oJetspeedRequestContext.setAttribute(a_sName, a_sValue);
}
// Invoke the action
Map a_oResultMap = new HashMap();
boolean a_bSuccess;
try
{
a_bSuccess = a_oAction.runBatch(a_oJetspeedRequestContext,
a_oResultMap);
} catch (Exception e)
{
// Move the reason into the return map
p_oResultMap.put(REASON, a_oResultMap.get(REASON));
throw new AJAXException(e);
}
// Check for success
if (a_bSuccess)
{