/** * Retrieve the place of the metadata value * * @param fieldToLastPlace the map containing the latest place of each metadata field * @param metadataValue the metadata value that needs to get a place * @return The new place for the metadata valu */ protected int getMetadataValuePlace(Map<MetadataField, Integer> fieldToLastPlace, MetadataValue metadataValue) { MetadataField metadataField = metadataValue.getMetadataField(); if (fieldToLastPlace.containsKey(metadataField)) { fieldToLastPlace.put(metadataField, fieldToLastPlace.get(metadataField) + 1); } else { // The metadata value place starts at 0 fieldToLastPlace.put(metadataField, 0); } return fieldToLastPlace.get(metadataField); }
/** * Construct metadata field name out of Metadatum components * * @param v The Metadatum to construct a name for. * @return The complete metadata field name. */ protected String buildFieldName(MetadataValue v) { StringBuilder name = new StringBuilder(); MetadataField metadataField = v.getMetadataField(); MetadataSchema metadataSchema = v.getMetadataField().getMetadataSchema(); name.append(metadataSchema.getName()).append(".").append(metadataField.getElement()); if (null != metadataField.getQualifier()) { name.append("." + metadataField.getQualifier()); } return name.toString(); }
protected void addMetadata(MetadataValue metadataValue) { setMetadataModified(); getMetadata().add(metadataValue); addDetails(metadataValue.getMetadataField().toString()); }
@Override public String getLabel(MetadataValue metadataValue, String locale) { return getLabel(metadataValue.getMetadataField().toString(), metadataValue.getAuthority(), locale); }
/** * Discover the different schemas in use and output a separate metadata XML * file for each schema. * * @param c DSpace context * @param i DSpace Item * @param destDir destination directory * @param migrate Whether to use the migrate option or not * @throws Exception if error */ protected void writeMetadata(Context c, Item i, File destDir, boolean migrate) throws Exception { Set<String> schemas = new HashSet<String>(); List<MetadataValue> dcValues = itemService.getMetadata(i, Item.ANY, Item.ANY, Item.ANY, Item.ANY); for (MetadataValue metadataValue : dcValues) { schemas.add(metadataValue.getMetadataField().getMetadataSchema().getName()); } // Save each of the schemas into it's own metadata file for (String schema : schemas) { writeMetadata(c, schema, i, destDir, migrate); } }
@Override public void move(Context context, WorkspaceItem source, Collection fromCollection, Collection toCollection) throws DCInputsReaderException { source.setCollection(toCollection); List<MetadataValue> remove = new ArrayList<>(); List<String> diff = Util.differenceInSubmissionFields(fromCollection, toCollection); for (String toRemove : diff) { for (MetadataValue value : source.getItem().getMetadata()) { if (value.getMetadataField().toString('.').equals(toRemove)) { remove.add(value); } } } source.getItem().removeMetadata(remove); }
@Override public List<String> getVariants(MetadataValue metadataValue) { ChoiceAuthority ma = getChoiceAuthorityMap().get(metadataValue.getMetadataField().toString()); if (ma instanceof AuthorityVariantsSupport) { AuthorityVariantsSupport avs = (AuthorityVariantsSupport) ma; return avs.getVariants(metadataValue.getAuthority(), metadataValue.getLanguage()); } return null; }
MetadataField metadataField = metadataValue.getMetadataField(); if (!(metadataField.getElement().equals("description") && (metadataField.getQualifier() != null && metadataField.getQualifier().equals("provenance")))) {
@Override public void additionalIndex(Context context, DSpaceObject dso, SolrInputDocument document) { if (dso instanceof Item) { Item item = (Item) dso; List<MetadataValue> dcValues = itemService.getMetadata(item, Item.ANY, Item.ANY, Item.ANY, Item.ANY); List<String> toIgnoreMetadataFields = SearchUtils.getIgnoredMetadataFields(item.getType()); for (MetadataValue dcValue : dcValues) { if (!toIgnoreMetadataFields.contains(dcValue.getMetadataField().toString('.'))) { document.addField("a_spell", dcValue.getValue()); } } } } }
MetadataField field = dcv.getMetadataField(); String valueMatch = field.getMetadataSchema().getName() + "." + field.getElement();
/** * Get display of Metadatum * * @param dcv MetadataValue * @return string displaying elements of the Metadatum */ public static String getDCValueString(MetadataValue dcv) { MetadataField metadataField = dcv.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); return "schema: " + metadataSchema.getName() + "; element: " + metadataField .getElement() + "; qualifier: " + metadataField.getQualifier() + "; language: " + dcv.getLanguage() + "; value: " + dcv.getValue(); }
protected void copyMetadata(Context context, Item itemNew, Item nativeItem) throws SQLException { List<MetadataValue> md = itemService.getMetadata(nativeItem, Item.ANY, Item.ANY, Item.ANY, Item.ANY); for (MetadataValue aMd : md) { MetadataField metadataField = aMd.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); String unqualifiedMetadataField = metadataSchema.getName() + "." + metadataField.getElement(); if (getIgnoredMetadataFields().contains(metadataField.toString('.')) || getIgnoredMetadataFields().contains(unqualifiedMetadataField + "." + Item.ANY)) { //Skip this metadata field continue; } itemService .addMetadata(context, itemNew, metadataField, aMd.getLanguage(), aMd.getValue(), aMd.getAuthority(), aMd.getConfidence()); } }
for (int i = 0; i < dc.size(); i++) { MetadataValue metadataValue = dc.get(i); MetadataField metadataField = metadataValue.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema();
public MockMetadataValue(MetadataValue metadataValue) { MetadataField metadataField = metadataValue.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); schema = metadataSchema.getName(); element = metadataField.getElement(); qualifier = metadataField.getQualifier(); language = metadataValue.getLanguage(); value = metadataValue.getValue(); authority = metadataValue.getAuthority(); confidence = metadataValue.getConfidence(); }
itemService.addMetadata(context, item, identifier.getMetadataField(), identifier.getLanguage(), identifier.getValue(),
@Override public Element disseminateElement(Context context, DSpaceObject dso) throws CrosswalkException, IOException, SQLException, AuthorizeException { if (dso.getType() != Constants.ITEM) { throw new CrosswalkObjectNotSupported("DIMDisseminationCrosswalk can only crosswalk an Item."); } Item item = (Item) dso; List<MetadataValue> dc = itemService.getMetadata(item, Item.ANY, Item.ANY, Item.ANY, Item.ANY); Element dim = new Element("dim", DIM_NS); for (MetadataValue aDc : dc) { MetadataField metadataField = aDc.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); Element field = new Element("field", DIM_NS); field.setAttribute("mdschema", metadataSchema.getName()); field.setAttribute("element", metadataField.getElement()); if (metadataField.getQualifier() != null) { field.setAttribute("qualifier", metadataField.getQualifier()); } if (aDc.getLanguage() != null) { field.setAttribute("lang", aDc.getLanguage()); } if (aDc.getValue() != null) { field.setText(aDc.getValue()); } dim.addContent(field); } return dim; }
if (dcv.getValue() != null && dcv.getValue().equalsIgnoreCase("today")) { DCDate issued = new DCDate(now.getYear(), now.getMonth(), now.getDay(), -1, -1, -1); itemService.addMetadata(c, item, dcv.getMetadataField(), dcv.getLanguage(), issued.toString()); } else if (dcv.getValue() != null) { itemService.addMetadata(c, item, dcv.getMetadataField(), dcv.getLanguage(), dcv.getValue());
identifier.getMetadataField(), identifier.getLanguage(), identifier.getValue(),
/** * @param context The relevant DSpace Context. * @param bitstream the bitstream to be cloned * @return id of the clone bitstream. * A general class of exceptions produced by failed or interrupted I/O operations. * @throws SQLException An exception that provides information on a database access error or other errors. * @throws AuthorizeException Exception indicating the current user of the context does not have permission * to perform a particular action. */ @Override public Bitstream clone(Context context, Bitstream bitstream) throws SQLException, IOException, AuthorizeException { Bitstream clonedBitstream = bitstreamService.clone(context, bitstream); clonedBitstream.setStoreNumber(bitstream.getStoreNumber()); List<MetadataValue> metadataValues = bitstreamService .getMetadata(bitstream, Item.ANY, Item.ANY, Item.ANY, Item.ANY); for (MetadataValue metadataValue : metadataValues) { bitstreamService.addMetadata(context, clonedBitstream, metadataValue.getMetadataField(), metadataValue.getLanguage(), metadataValue.getValue(), metadataValue.getAuthority(), metadataValue.getConfidence()); } bitstreamService.update(context, clonedBitstream); return clonedBitstream; }
if (!suppressUndo) { for (MetadataValue dcv : ardcv) { MetadataField metadataField = dcv.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); itarch.addUndoMetadataField(