goobi/goobi-production — pull request #199 by matthias-ronge (2014-09-09 07:54:52+00:00)
Title: Issue 170

Extends Goobi with an option to copy goobi metadata using rules which are applied after a catalogue query has been done.

A copy rule consists of a location to assign the data to, an assignment operator and a location to get the data from, separated by blanks. Multiple copy rules are separated using semicolon (;). Available operators are:

""= Copies right to left in case that the right hand side exists and the
left hand side's path is available, but the metadatum is NOT YET SET
on the corresponding

Right and left hand side expressions are metadata selectors. Metadata selectors are specified as paths though the logical structure element tree. They use foreward slashes "/" as separators, where a single slash references to the top level. "*" may be used for "any element", square braces may be used for referring to a certain element by its index. [>] refers to the last available index. The metadata element to be read or set is attached after an at "@" symbol.Examples:

- `/@TitleDocMain` − main title of top struct
- `/*[0]@CurrentNoSorting` − order number of first child

The following code copies the sort number from the first child to the top struct, given it does not yet have one, and the main title from the top struct to the first child, given it does not yet have one:

/@CurrentNoSorting ""= /*[0]@CurrentNoSorting;/*[0]@TitleDocMain ""= /@TitleDocMain