/// <summary>
 /// Instantiates a <see cref="NativeViewHierarchyOptimizer"/>.
 /// </summary>
 /// <param name="uiViewOperationQueue">The UI view operation queue.</param>
 /// <param name="shadowNodeRegistry">The shadow node registry.</param>
 public NativeViewHierarchyOptimizer(
     UIViewOperationQueue uiViewOperationQueue,
     ShadowNodeRegistry shadowNodeRegistry)
 {
     _uiViewOperationQueue = uiViewOperationQueue;
     _shadowNodeRegistry = shadowNodeRegistry;
     _tagsWithLayoutVisited = new Dictionary<int, bool>();
 }
 /// <summary>
 /// Instantiates a <see cref="NativeViewHierarchyOptimizer"/>.
 /// </summary>
 /// <param name="uiViewOperationQueue">The UI view operation queue.</param>
 /// <param name="shadowNodeRegistry">The shadow node registry.</param>
 public NativeViewHierarchyOptimizer(
     UIViewOperationQueue uiViewOperationQueue,
     ShadowNodeRegistry shadowNodeRegistry)
 {
     _uiViewOperationQueue  = uiViewOperationQueue;
     _shadowNodeRegistry    = shadowNodeRegistry;
     _tagsWithLayoutVisited = new Dictionary <int, bool>();
 }
 /// <summary>
 /// Instantiates the <see cref="UIImplementation"/>.
 /// </summary>
 /// <param name="viewManagers">The view managers.</param>
 /// <param name="operationsQueue">The operations queue.</param>
 protected UIImplementation(
     ViewManagerRegistry viewManagers,
     UIViewOperationQueue operationsQueue)
 {
     _viewManagers                 = viewManagers;
     _operationsQueue              = operationsQueue;
     _shadowNodeRegistry           = new ShadowNodeRegistry();
     _nativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer(
         _operationsQueue,
         _shadowNodeRegistry);
 }
 /// <summary>
 /// Instantiates the <see cref="UIImplementation"/>.
 /// </summary>
 /// <param name="viewManagers">The view managers.</param>
 /// <param name="operationsQueue">The operations queue.</param>
 protected UIImplementation(
     ViewManagerRegistry viewManagers,
     UIViewOperationQueue operationsQueue)
 {
     _viewManagers = viewManagers;
     _operationsQueue = operationsQueue;
     _shadowNodeRegistry = new ShadowNodeRegistry();
     _nativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer(
         _operationsQueue,
         _shadowNodeRegistry);
 }
 /// <summary>
 /// Instantiates the <see cref="UIImplementation"/>.
 /// </summary>
 /// <param name="reactContext">The React context.</param>
 /// <param name="viewManagers">The view managers.</param>
 /// <param name="operationsQueue">The operations queue.</param>
 /// <param name="eventDispatcher">The event dispatcher.</param>
 protected UIImplementation(
     ReactContext reactContext,
     ViewManagerRegistry viewManagers,
     UIViewOperationQueue operationsQueue,
     EventDispatcher eventDispatcher)
 {
     _reactContext                 = reactContext;
     _viewManagers                 = viewManagers;
     _operationsQueue              = operationsQueue;
     _shadowNodeRegistry           = new ShadowNodeRegistry();
     _nativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer(
         _operationsQueue,
         _shadowNodeRegistry);
     _eventDispatcher = eventDispatcher;
 }