+ /**
+ * Find the key in the mapping table, if it's present, then generate
+ * a property value for it (of the given type if available),
+ * recursing as necessary, and stopping if any cycles are detected.
+ *
+ * @param[in] mappingRoot The JSON node containing the mappings
+ * @param[in] theKey The key to search for
+ * @param[in] propertyType The property type if known, or NONE
+ * @param[in,out] value The string value to test and write back to.
+ */
+ bool GetPropertyMap( const TreeNode& mappingRoot,
+ const char* theKey,
+ Property::Type propertyType,
+ Property::Value& value );
+
+ void SetCustomProperties( const TreeNode& node,
+ Handle& handle,
+ const Replacement& constant,
+ const std::string& childName,
+ Property::AccessMode accessMode );
+
+ /**
+ * Find the key in the mapping table, if it's present, then generate
+ * a property value for it (of the given type if available),
+ * recursing as necessary, and stopping if any cycles are detected.
+ *
+ * @param[in] mappingRoot The JSON node containing the mappings
+ * @param[in] theKey The key to search for
+ * @param[in,out] keyStack the stack of visited keys
+ * @param[in] propertyType The property type if known, or NONE
+ * @param[in,out] value The string value to test and write back to.
+ */
+ bool RecursePropertyMap( const TreeNode& mappingRoot,
+ KeyStack& keyStack,
+ const char* theKey,
+ Property::Type propertyType,
+ Property::Value& value );
+
+
+ /**
+ * Tests if the value is a string delimited by <>. If it is, then it attempts to
+ * change the value to the mapping from a matching key in the mappings table.
+ * @param[in] mappingRoot The JSON node containing the mappings
+ * @param[in,out] keyStack the stack of visited keys
+ * @param[in,out] value The string value to test and write back to.
+ * @return true if the value was converted, false otherwise.
+ */
+ bool ConvertChildValue( const TreeNode& mappingRoot,
+ KeyStack& keyStack,
+ Property::Value& value );
+
+private:
+ Toolkit::JsonParser mParser;
+ ImageLut mFrameBufferImageLut;
+ PathLut mPathLut;
+ PathConstrainerLut mPathConstrainerLut;
+ LinearConstrainerLut mLinearConstrainerLut;
+ SlotDelegate<Builder> mSlotDelegate;
+ Property::Map mReplacementMap;
+ Property::Map mConfigurationMap;
+ MappingsLut mCompleteMappings;
+ Dictionary<StylePtr> mStyles; // State based styles