package com.bao.lc.httpcommand.impl;
import org.apache.commons.chain.Command;
import org.apache.commons.chain.Context;
import com.bao.lc.httpcommand.CommandCompleteListener;
import com.bao.lc.httpcommand.HttpCommandDirector;
import com.bao.lc.httpcommand.params.HttpCommandParams;
public class DefaultHttpCommandDirector implements HttpCommandDirector
{
@Override
public void execute(Command command, Context context, CommandCompleteListener listener) throws Exception
{
try
{
// Command result
boolean commandResult = command.execute(context);
if(listener != null)
{
listener.commandComplete(commandResult, HttpCommandParams.getResultCode(context),
command, context);
}
}
catch(Exception e)
{
if(listener != null)
{
listener.commandException(e, command, context);
}
}
}
@Override
public void execute(Command mainCommand, Context mainContext,
CommandCompleteListener mainListener, Command finalCommand, Context finalContext,
CommandCompleteListener finalListener) throws Exception
{
try
{
execute(mainCommand, mainContext, mainListener);
}
finally
{
execute(finalCommand, finalContext, finalListener);
}
}
}