*/
protected DepositReceipt createReceipt(Context context, DepositResult result, SwordConfigurationDSpace config, boolean mediaResourceLocation)
throws DSpaceSwordException, SwordError, SwordServerException
{
SwordUrlManager urlManager = config.getUrlManager(context, config);
DepositReceipt receipt = new DepositReceipt();
receipt.setAtomStatementURI(urlManager.getAtomStatementUri(result.getItem()));
receipt.setOREStatementURI(urlManager.getOreStatementUri(result.getItem()));
receipt.setEditIRI(urlManager.getEditIRI(result.getItem()));
receipt.setSplashUri(urlManager.getSplashUrl(result.getItem()));
receipt.setSwordEditIRI(urlManager.getEditIRI(result.getItem()));
receipt.setTreatment(result.getTreatment());
receipt.setContent(urlManager.getContentUrl(result.getItem()), "application/zip");
receipt.addEditMediaIRI(urlManager.getContentUrl(result.getItem()), "application/zip");
receipt.setMediaFeedIRI(urlManager.getMediaFeedUrl(result.getItem()));
receipt.setLastModified(result.getItem().getLastModified());
if (mediaResourceLocation)
{
receipt.setLocation(urlManager.getContentUrl(result.getItem()));
}
else
{
receipt.setLocation(urlManager.getEditIRI(result.getItem()));
}
Bitstream od = result.getOriginalDeposit();
if (od != null)
{
// note here that we don't provide an actionable url
receipt.setOriginalDeposit(urlManager.getActionableBitstreamUrl(od), od.getFormat().getMIMEType());
}
Map<String, String> derived = new HashMap<String, String>();
List<Bitstream> drs = result.getDerivedResources();
if (drs != null)
{
for (Bitstream bs : result.getDerivedResources())
{
// here we provide actionable urls for the parts of the resource
derived.put(urlManager.getActionableBitstreamUrl(bs), bs.getFormat().getMIMEType());
}
}
receipt.setDerivedResources(derived);
// add the category information to the sword entry
this.addCategories(result, receipt);
// add the publish date
this.addPublishDate(result, receipt);
// add the item's metadata
SwordEntryDisseminator disseminator = SwordDisseminatorFactory.getEntryInstance();
disseminator.disseminate(context, result.getItem(), receipt);
try
{
StringBuilder rightsString = new StringBuilder();
Bundle[] bundles = result.getItem().getBundles("LICENSE");
for (int i = 0; i < bundles.length; i++)
{
Bitstream[] bss = bundles[i].getBitstreams();
for (int j = 0; j < bss.length; j++)
{
String url = urlManager.getBitstreamUrl(bss[j]);
rightsString.append(url + " ");
}
}
receipt.getWrappedEntry().setRights(rightsString.toString());
}
catch (SQLException e)
{
throw new DSpaceSwordException(e);
}
// add the date on which the entry was last updated
this.addLastUpdatedDate(result, receipt);
// do this from configuration
receipt.setPackaging(config.getDisseminatePackaging());
return receipt;
}