Class to find and perform renaming operations against a map of data values. A simple renaming operation is a mapping whose value begins with "<=". The key is the new name for the data, and the rest of the value is the original name. So the following lines in a datafile:
foo="bar baz=<=foo
would be equivalent to the single line `baz="bar'. Simple renaming operations are correctly transitive, so
foo=1 bar=<=foo baz=<=bar
is equivalent to `baz=1'. This will work correctly, no matter what order the lines appear in. Pattern match renaming operations are mappings whose value begins with >~. The key is a pattern to match, and the value is the substitution expression. So
foo 1="one foo 2="two foo ([0-9])+=>~$1/foo
would be equivalent to the lines
1/foo="one 2/foo="two
The pattern must match the original name of the element - not any renamed variant. Therefore, pattern match renaming operations
cannot be chained. A pattern match operation
can be the
first renaming operation in a transitive chain, but will neverbe used as the second or subsequent operations in a chain. Finally, renaming operations can influence dataFiles below them in the datafile inheritance chain. This is, in fact, the #1 reason for the renaming mechanism. It allows a process datafile to rename elements that appear in end-user project datafiles.