UVM: phase handle from UVM object

Lets say that I want to get a handle of phase to see who are all my objectors from an UVM_OBJECT (say report catcher).
How do I go about it?

*In reply to sharatk:*The phase that you are in is represented by the phase argument of the *_phase method. There is no single state that represents the current state, because the UVM has many possible phase domains that could be simultaneously active. So you will have to either pass the phase into the function when calling it:

function void my_function(uvm_phase phase);
  if (!phase.is(uvm_build_phase::get()) `uvm_fatal(...);
endfunction

Or if you can get a handle to a related uvm_component, you can override the phase_started method

class my_component extends uvm_component;

protected uvm_phase m_current_phase
function void phase_started(uvm_phase phase);
  super.phase_started(phase);
  m_current_phase = phase;
endfunction : phase_started

  function void my_function(..);
      if (!m_current_phase.is(uvm_build_phase::get()) `uvm_fatal(...);
  endfunction