Update or add metadata properties satisfying a predicate
The setProperties method used in this code sample actually combines two operations: add and update. If an existing property satisfies the specified predicate its value is updated. If there is a known property missing in a metadata package that satisfies the predicate it is added to the appropriate package.
The code snippet below demonstrates a basic usage scenario of the setProperties method.
// Constants.InputVsdx is an absolute or relative path to your document. Ex: @"C:\Docs\source.vsdx"try(Metadatametadata=newMetadata(Constants.InputVsdx)){// Set the value of each property that satisfies the predicate:// property contains the date/time the document was created OR modifiedintaffected=metadata.setProperties(newContainsTagSpecification(Tags.getTime().getCreated()).or(newContainsTagSpecification(Tags.getTime().getModified())),newPropertyValue(newDate()));System.out.println(String.format("Properties set: %s",affected));metadata.save(Constants.OutputVsdx);}
As a result, we update all existing metadata properties containing the date the document was created/updated. If a metadata package doesn’t contain such properties but they are meant to be in its structure they are added.
For more information on supported features of the GroupDocs.Metadata search engine please refer to the following articles: