public String toString(char separator) { if (qualifier == null) { return getMetadataSchema().getName() + separator + element; } else { return getMetadataSchema().getName() + separator + element + separator + qualifier; } }
@Override public int hashCode() { int hash = 7; hash = 47 * hash + getID(); hash = 47 * hash + getMetadataSchema().getID(); return hash; }
/** * 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(); }
/** * Return <code>true</code> if <code>other</code> is the same MetadataField * as this object, <code>false</code> otherwise * * @param obj object to compare to * @return <code>true</code> if object passed in represents the same * MetadataField as this object */ @Override public boolean equals(Object obj) { if (obj == null) { return false; } Class<?> objClass = HibernateProxyHelper.getClassWithoutInitializingProxy(obj); if (getClass() != objClass) { return false; } final MetadataField other = (MetadataField) obj; if (this.getID() != other.getID()) { return false; } if (!getMetadataSchema().equals(other.getMetadataSchema())) { return false; } return true; }
/** * 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); } }
/** * Helper method to retrieve a schema name for the field. * Caches the name after looking up the id. * * @param context DSpace Context * @param mdField DSpace metadata field * @return name of schema * @throws SQLException if database error * @throws RegistryExportException if export error */ private static String getSchemaName(Context context, MetadataField mdField) throws SQLException, RegistryExportException { // Get name from cache String name = schemaMap.get(mdField.getMetadataSchema().getID()); if (name == null) { // Name not retrieved before, so get the schema now MetadataSchema mdSchema = metadataSchemaService.find(context, mdField.getMetadataSchema().getID()); if (mdSchema != null) { name = mdSchema.getName(); schemaMap.put(mdSchema.getID(), name); } else { // Can't find the schema throw new RegistryExportException("Can't get schema name for field"); } } return name; }
throw new WebApplicationException(Response.Status.NOT_FOUND); org.dspace.content.MetadataSchema schema = field.getMetadataSchema(); if (schema == null) { log.error(String.format("Parent Schema not found for Metadata Field %d not found", fieldId));
/** * Is it Ok to export this value? When exportAll is set to false, we don't export * some of the metadata elements. * * The list can be configured via the key ignore-on-export in bulkedit.cfg * * @param md The Metadatum to examine * @return Whether or not it is OK to export this element */ protected boolean okToExport(MetadataField md) { // Now compare with the list to ignore String key = md.getMetadataSchema().getName() + "." + md.getElement(); if (md.getQualifier() != null) { key += "." + md.getQualifier(); } if (ignore.get(key) != null) { return false; } // Must be OK, so don't ignore return true; }
MetadataSchema metadataSchema = metadataField.getMetadataSchema();
String valueMatch = field.getMetadataSchema().getName() + "." + field.getElement(); if (field.getQualifier() != null) {
itemService.clearMetadata(context, item, field.getMetadataSchema().getName(), field.getElement(), field.getQualifier(), Item.ANY); itemService.addMetadata(context, item, field.getMetadataSchema().getName(), field.getElement(), field.getQualifier(), I18nUtil.getDefaultLocale().toString(), StringUtils.trim(title));
@Override public void addMetadata(Context context, T dso, MetadataField metadataField, String language, List<String> values) throws SQLException { if (metadataField != null) { String fieldKey = metadataAuthorityService .makeFieldKey(metadataField.getMetadataSchema().getName(), metadataField.getElement(), metadataField.getQualifier()); if (metadataAuthorityService.isAuthorityControlled(fieldKey)) { List<String> authorities = new ArrayList<String>(); List<Integer> confidences = new ArrayList<Integer>(); for (int i = 0; i < values.size(); ++i) { if (dso instanceof Item) { getAuthoritiesAndConfidences(fieldKey, ((Item) dso).getOwningCollection(), values, authorities, confidences, i); } else { getAuthoritiesAndConfidences(fieldKey, null, values, authorities, confidences, i); } } addMetadata(context, dso, metadataField, language, values, authorities, confidences); } else { addMetadata(context, dso, metadataField, language, values, null, null); } } }
/** * 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(); }
MetadataValue metadataValue = dc.get(i); MetadataField metadataField = metadataValue.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); if (metadataField.getMetadataSchema().getName().equals(MetadataSchema.DC_SCHEMA)) { log.warn("WARNING: " + myName + ": No QDC mapping for \"" + qdc + "\"");
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()); } }
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(); }
@Override public void update(Context context, MetadataField metadataField) throws SQLException, AuthorizeException, NonUniqueMetadataException, IOException { // Check authorisation: Only admins may update the metadata registry if (!authorizeService.isAdmin(context)) { throw new AuthorizeException( "Only administrators may modiffy the Dublin Core registry"); } // Ensure the element and qualifier are unique within a given schema. if (hasElement(context, metadataField.getID(), metadataField.getMetadataSchema(), metadataField.getElement(), metadataField.getQualifier())) { throw new NonUniqueMetadataException( "Please make " + metadataField.getMetadataSchema().getName() + "." + metadataField.getElement() + "." + metadataField.getQualifier()); } metadataFieldDAO.save(context, metadataField); log.info(LogManager.getHeader(context, "update_metadatafieldregistry", "metadata_field_id=" + metadataField.getID() + "element=" + metadataField .getElement() + "qualifier=" + metadataField.getQualifier())); }
@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; }
for (MetadataValue dcv : ardcv) { MetadataField metadataField = dcv.getMetadataField(); MetadataSchema metadataSchema = metadataField.getMetadataSchema(); itarch.addUndoMetadataField( DtoMetadata.create(metadataSchema.getName(), metadataField.getElement(),
MetadataSchema metadataSchema = metadataField.getMetadataSchema(); itemService.addMetadata(context, item, metadataSchema.getName(), metadataField.getElement(), metadataField.getQualifier(), aMd.getLanguage(),