/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.xmlui.aspect.swordclient;
import org.apache.log4j.Logger;
import org.dspace.app.xmlui.aspect.administrative.FlowResult;
import org.dspace.app.xmlui.wing.Message;
import org.dspace.core.Context;
import org.dspace.sword.client.*;
import org.dspace.sword.client.exceptions.HttpException;
import org.dspace.sword.client.exceptions.InvalidHandleException;
import org.dspace.sword.client.exceptions.PackageFormatException;
import org.dspace.sword.client.exceptions.PackagerException;
import org.purl.sword.client.SWORDClientException;
/**
* User: Robin Taylor
* Date: 27/03/11
* Time: 15:47
*/
public class DepositAction {
private static final Message T_success = new Message("default", "xmlui.swordclient.DepositAction.success");
private static final Message T_package_format_error = new Message("default", "xmlui.swordclient.DepositAction.package_format_error");
private static final Message T_invalid_handle = new Message("default", "xmlui.swordclient.DepositAction.invalid_handle");
private static final Message T_package_error = new Message("default", "xmlui.swordclient.DepositAction.package_error");
private static final Message T_error = new Message("default", "xmlui.swordclient.DepositAction.error");
private static Logger log = Logger.getLogger(DepositAction.class);
public FlowResult processDeposit(Context context, String handle, DSpaceSwordClient DSClient)
{
FlowResult result = new FlowResult();
result.setContinue(false);
try
{
DSClient.deposit(context, handle);
result.setContinue(true);
result.setOutcome(true);
result.setMessage(T_success);
}
catch (PackageFormatException e)
{
log.error("Package Format Exception", e);
result.setOutcome(false);
result.setMessage(T_package_format_error);
}
catch (InvalidHandleException e)
{
log.error("Invalid handle Exception", e);
result.setOutcome(false);
result.setMessage(T_invalid_handle);
}
catch (PackagerException e)
{
log.error("Packager Exception", e);
result.setOutcome(false);
result.setMessage(T_package_error);
}
catch (SWORDClientException e)
{
log.error("SWORDClientException encountered " + e.getMessage(), e);
result.setOutcome(false);
result.setMessage(T_error.parameterize(e.getMessage()));
}
catch (HttpException e)
{
log.error("HttpException encountered " + e.getMessage(), e);
result.setOutcome(false);
result.setMessage(T_error.parameterize(e.getMessage()));
}
return result;
}
}