Cop battling for life after gun attack in Greater Portmore