Currently, we use ThreadLocals to share state among view generators.
A more cleaner way to achieve this is to add a mapper node which precomputes the shared state.
This node would take the StructuredTrace object and map to an Object with multiple suppliers.
These suppliers can be loaded lazily, to ensure that actual computation are done only when needed.
cc @laxmanchekka @avinashkolluru @kotharironak