public String getObjectSizesInfo(Context context) throws SQLException { StringBuilder sb = new StringBuilder(); sb.append(String.format("Count %-14s: %s\n", "Bitstream", String.valueOf(bitstreamService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "Bundle", String.valueOf(bundleService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "Collection", String.valueOf(collectionService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "Community", String.valueOf(communityService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "MetadataValue", String.valueOf(metadataValueService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "EPerson", String.valueOf(ePersonService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "Item", String.valueOf(itemService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "Handle", String.valueOf(handleService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "Group", String.valueOf(groupService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "BasicWorkflowItem", String.valueOf(basicWorkflowItemService.countTotal(context)))); sb.append(String.format("Count %-14s: %s\n", "WorkspaceItem", String.valueOf(workspaceItemService.countTotal(context)))); return sb.toString(); }
@Override public void removeMetadataValues(Context context, T dso, List<MetadataValue> values) throws SQLException { Iterator<MetadataValue> metadata = dso.getMetadata().iterator(); while (metadata.hasNext()) { MetadataValue metadataValue = metadata.next(); if (values.contains(metadataValue)) { metadata.remove(); metadataValueService.delete(context, metadataValue); } } dso.setMetadataModified(); }
.findByValueLike(context, handlePrefix + oldH); metadataValue .setValue(metadataValue.getValue().replace(handlePrefix + oldH, handlePrefix + newH)); metadataValueService.update(context, metadataValue, true); context.uncacheEntity(metadataValue); updMeta++;
@Override public Date getEarliestDate(Context context) throws InvalidMetadataFieldException, SQLException { String query = "SELECT MIN(text_value) as value FROM metadatavalue WHERE metadata_field_id = ?"; MetadataValueService metadataValueService = ContentServiceFactory.getInstance().getMetadataValueService(); MetadataValue minimum = metadataValueService.getMinimum(context, fieldResolver.getFieldID(context, "dc.date.available")); if (null != minimum) { String str = minimum.getValue(); try { Date d = DateUtils.parse(str); if (d != null) { return d; } } catch (Exception e) { log.error(e.getMessage(), e); } } return new Date(); } }
MetadataValue metadataValue = metadataValueService.create(context, dso, metadataField); metadataValue.setLanguage(lang == null ? null : lang.trim());
@Override public void delete(Context context, MetadataField metadataField) throws SQLException, AuthorizeException { // Check authorisation: Only admins may create DC types if (!authorizeService.isAdmin(context)) { throw new AuthorizeException( "Only administrators may modify the metadata registry"); } // Check for existing usages of this field List<MetadataValue> values = null; try { values = metadataValueService.findByField(context, metadataField); } catch (IOException io) { // ignore } // Only remove this field if it is NOT in use (as we don't want to bulk delete metadata values) if (CollectionUtils.isEmpty(values)) { metadataFieldDAO.delete(context, metadataField); } else { throw new IllegalStateException("Metadata field " + metadataField .toString() + " cannot be deleted as it is currently used by one or more objects."); } log.info(LogManager.getHeader(context, "delete_metadata_field", "metadata_field_id=" + metadataField.getID())); }
/** * Replace an item's DCValue with this authority * * @param context context * @param value metadata value * @param currentItem item * @throws SQLException if database error * @throws AuthorizeException if authorization error */ public void updateItem(Context context, Item currentItem, MetadataValue value) throws SQLException, AuthorizeException { value.setValue(getValue()); value.setAuthority(getId()); ContentServiceFactory.getInstance().getMetadataValueService().update(context, value, true); }
@Override public void clearMetadata(Context context, T dso, String schema, String element, String qualifier, String lang) throws SQLException { Iterator<MetadataValue> metadata = dso.getMetadata().iterator(); while (metadata.hasNext()) { MetadataValue metadataValue = metadata.next(); // If this value matches, delete it if (match(schema, element, qualifier, lang, metadataValue)) { metadata.remove(); metadataValueService.delete(context, metadataValue); } } dso.setMetadataModified(); }