DepositReceipt createDatasetReceipt(String baseUrl, Dataset dataset) { logger.fine("baseUrl was: " + baseUrl); DepositReceipt depositReceipt = new DepositReceipt(); String globalId = dataset.getGlobalIdString(); String editIri = baseUrl + "/edit/study/" + globalId; depositReceipt.setEditIRI(new IRI(editIri)); /** * @todo: should setLocation depend on if an atom entry or a zip file * was deposited? (This @todo has been carried over from the DVN 3.x * version.) */ depositReceipt.setLocation(new IRI(editIri)); depositReceipt.setEditMediaIRI(new IRI(baseUrl + "/edit-media/study/" + globalId)); depositReceipt.setStatementURI("application/atom+xml;type=feed", baseUrl + "/statement/study/" + globalId); depositReceipt.addDublinCore("bibliographicCitation", dataset.getLatestVersion().getCitation()); depositReceipt.setSplashUri(dataset.getPersistentURL()); return depositReceipt; }
public static DepositReceipt buildDepositReceipt(IRI iri) throws SwordError { DepositReceipt depositReceipt = new DepositReceipt(); depositReceipt.setEditIRI(iri); return depositReceipt; }
protected DepositReceipt createMediaResourceReceipt(Context context, Item item, SwordConfigurationDSpace config) throws DSpaceSwordException, SwordError, SwordServerException { SwordUrlManager urlManager = config.getUrlManager(context, config); DepositReceipt receipt = new DepositReceipt(); receipt.setLocation(urlManager.getContentUrl(item)); return receipt; }
DepositReceipt createDataverseReceipt(String baseUrl, Dataverse dataverse) { logger.fine("baseUrl was: " + baseUrl); DepositReceipt depositReceipt = new DepositReceipt(); String globalId = dataverse.getAlias(); String collectionIri = baseUrl + "/collection/dataverse/" + globalId; depositReceipt.setSplashUri(collectionIri); /** * @todo We have to include an "edit" IRI or else we get * NullPointerException in getAbderaEntry at * https://github.com/swordapp/JavaServer2.0/blob/sword2-server-1.0/src/main/java/org/swordapp/server/DepositReceipt.java#L52 * * Do we want to support a replaceMetadata of dataverses? Probably not. * Let's do that with the native API. * * Typically, we only operate on the "collection" IRI for dataverses, to * create a dataset. */ String editIri = baseUrl + "/edit/dataverse/" + globalId; depositReceipt.setEditIRI(new IRI(editIri)); return depositReceipt; }
throws DSpaceSwordException, SwordError, SwordServerException { SwordUrlManager urlManager = config.getUrlManager(context, config); DepositReceipt receipt = new DepositReceipt(); receipt.setAtomStatementURI(urlManager.getAtomStatementUri(item)); receipt.setOREStatementURI(urlManager.getOreStatementUri(item)); receipt.setEditIRI(urlManager.getEditIRI(item)); receipt.setLocation(urlManager.getEditIRI(item)); receipt.setSplashUri(urlManager.getSplashUrl(item)); receipt.setSwordEditIRI(urlManager.getEditIRI(item)); receipt.setContent(urlManager.getContentUrl(item), "application/zip"); receipt.addEditMediaIRI( urlManager.getContentUrl(item), "application/zip"); receipt.setMediaFeedIRI(urlManager.getMediaFeedUrl(item)); receipt.setLastModified(item.getLastModified()); receipt.getWrappedEntry().setRights(rightsString.toString()); receipt.setPackaging(config.getDisseminatePackaging());
protected DepositReceipt createFileReceipt(Context context, DepositResult result, SwordConfigurationDSpace config) throws DSpaceSwordException, SwordError, SwordServerException { SwordUrlManager urlManager = config.getUrlManager(context, config); DepositReceipt receipt = new DepositReceipt(); receipt.setLocation(new IRI(urlManager .getActionableBitstreamUrl(result.getOriginalDeposit()))); receipt.setEmpty(true); return receipt; }
for (String element : dc.keySet()) { String value = dc.get(element); receipt.addDublinCore(element, value); String value = atom.get(element); if ("author".equals(element)) { receipt.getWrappedEntry().addAuthor(value); } else if ("published".equals(element)) { receipt.getWrappedEntry().setPublished(value); } else if ("rights".equals(element)) { receipt.getWrappedEntry().setRights(value); } else if ("summary".equals(element)) { receipt.getWrappedEntry().setSummary(value); } else if ("title".equals(element)) { receipt.getWrappedEntry().setTitle(value); } else if ("updated".equals(element)) { receipt.getWrappedEntry().setUpdated(value);
/** * Add the date of publication from the bibliographic metadata * * @param item target item * @param receipt deposit receipt */ protected void addPublishDate(Item item, DepositReceipt receipt) { List<MetadataValue> dcv = itemService.getMetadataByMetadataString( item, "dc.date.issued"); if (dcv != null && dcv.size() == 1) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date published = sdf.parse(dcv.get(0).getValue()); receipt.getWrappedEntry().setPublished(published); } catch (ParseException e) { // we tried, but never mind log.warn("Couldn't add published date", e); } } }
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()); receipt.setLocation(urlManager.getContentUrl(result.getItem())); } else { receipt.setLocation(urlManager.getEditIRI(result.getItem())); receipt.setOriginalDeposit( urlManager.getActionableBitstreamUrl(od), od.getFormat(context).getMIMEType()); receipt.setDerivedResources(derived); } catch (SQLException e) {
public void addMetadata(MCRObject object, DepositReceipt receipt) throws SwordError { final MCRBaseContent mcrBaseContent = new MCRBaseContent(object); final MCRContent mcrContent; try { mcrContent = XSL_MODS_DC_TRANSFORMER.transform(mcrBaseContent); } catch (IOException e) { throw new SwordError(UriRegistry.ERROR_BAD_REQUEST, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error while transforming mods2dc!", e); } final List<Element> elementList; try { elementList = mcrContent.asXML().getRootElement().getChildren(); } catch (JDOMException | IOException | SAXException e) { throw new SwordError(UriRegistry.ERROR_BAD_REQUEST, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error getting transform result of mods to dc transformation!", e); } elementList.stream() .filter(dcElement -> dcElement.getText().trim().length() > 0) .forEach(dcElement -> { receipt.addDublinCore(dcElement.getName(), dcElement.getText().trim()); }); MCRSwordUtil.addDatesToEntry(receipt.getWrappedEntry(), object); }
/** * Add the date of publication from the bibliographic metadata * * @param result represents the results of a deposit request * @param receipt deposit receipt */ protected void addPublishDate(DepositResult result, DepositReceipt receipt) { List<MetadataValue> dcv = itemService.getMetadataByMetadataString( result.getItem(), "dc.date.issued"); if (dcv != null && !dcv.isEmpty()) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date published = sdf.parse(dcv.get(0).getValue()); receipt.getWrappedEntry().setPublished(published); } catch (ParseException e) { // we tried, but never mind log.warn("Couldn't add published date", e); } } }
/** * Add the date that this item was last updated * * @param item target item * @param receipt deposit receipt */ protected void addLastUpdatedDate(Item item, DepositReceipt receipt) { String config = ConfigurationManager.getProperty( "swordv2-server", "updated.field"); List<MetadataValue> dcv = itemService.getMetadataByMetadataString( item, config); if (dcv != null && dcv.size() == 1) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date updated = sdf.parse(dcv.get(0).getValue()); receipt.getWrappedEntry().setUpdated(updated); } catch (ParseException e) { // we tried, but never mind log.warn("Couldn't add last updated date", e); } } } }
/** * Add the date that this item was last updated * * @param result represents the results of a deposit request * @param receipt deposit receipt */ protected void addLastUpdatedDate(DepositResult result, DepositReceipt receipt) { String config = ConfigurationManager.getProperty( "swordv2-server", "updated.field"); List<MetadataValue> dcv = itemService.getMetadataByMetadataString( result.getItem(), config); if (dcv != null && dcv.size() == 1) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date updated = sdf.parse(dcv.get(0).getValue()); receipt.getWrappedEntry().setUpdated(updated); } catch (ParseException e) { // we tried, but never mind log.warn("Couldn't add last updated date", e); } } }
/** * Add all the subject classifications from the bibliographic * metadata. * * @param item target item * @param receipt deposit receipt */ protected void addCategories(Item item, DepositReceipt receipt) { List<MetadataValue> dcv = itemService .getMetadataByMetadataString(item, "dc.subject.*"); if (dcv != null) { for (MetadataValue aDcv : dcv) { receipt.getWrappedEntry().addCategory( UriRegistry.DC_NAMESPACE, aDcv.getValue(), aDcv.getValue()); } } }
/** * Add all the subject classifications from the bibliographic * metadata. * * @param result represents the results of a deposit request * @param receipt deposit receipt */ protected void addCategories(DepositResult result, DepositReceipt receipt) { List<MetadataValue> dcv = itemService.getMetadataByMetadataString( result.getItem(), "dc.subject.*"); if (dcv != null) { for (MetadataValue aDcv : dcv) { receipt.getWrappedEntry().addCategory( UriRegistry.DC_NAMESPACE, aDcv.getValue(), aDcv.getValue()); } } }
@Override public DepositReceipt provideMetadata(MCRObject object) throws SwordError { final IRI iri = new IRI(MCRSwordUtil.BuildLinkUtil.getEditHref(this.lifecycleConfiguration.getCollection(), object.getId().toString())); final DepositReceipt depositReceipt = MCRSwordUtil.buildDepositReceipt(iri); addMetadata(object, depositReceipt); final Entry we = depositReceipt.getWrappedEntry(); MCRSwordUtil.BuildLinkUtil .getEditMediaIRIStream(this.lifecycleConfiguration.getCollection(), object.getId().toString()) .forEach(we::addLink); return depositReceipt; }