Significance of 'contxt' Argument for create() functions of uvm_component_registry N uvm_object_registry

Within class uvm_component_registry and uvm_object_registry I Observe ::



      static function T create (string name="", uvm_component parent=null,           //  Within   uvm_object_registry 
                            string contxt="");

      static function T create(string name, uvm_component parent, string contxt="");  //  Within   uvm_component_registry 



[Q1] What’s the significance for ‘contxt’ argument ? Is there any application for the same ?

   One  application  I  have  seen  is  instance_override  for  sequences .  

[Q2] Since objects don’t have hierarchy , why the argument uvm_component parent=null ?

In reply to Have_A_Doubt:

Yes, the contxt argument is for the context of instance based factory overrides. (doesn’t it bug you that they couldn’t add one extra letter to spell it out?).

You would typically use this from the component you are creating the object from. But if you are in a sequence, you could use the m_sequencer it’s running on. If you leave the argument null it assumes the global uvm_top.