# File lib/mcollective/connector/activemq.rb, line 540
      def make_target(agent, type, collective)
        raise("Unknown target type #{type}") unless [:directed, :broadcast, :reply, :request, :direct_request].include?(type)
        raise("Unknown collective '#{collective}' known collectives are '#{@config.collectives.join ', '}'") unless @config.collectives.include?(collective)

        target = {:name => nil, :headers => {}}

        case type
          when :reply
            target[:name] = ["/queue/" + collective, :reply, "#{Config.instance.identity}_#{$$}", Client.request_sequence].join(".")

          when :broadcast
            target[:name] = ["/topic/" + collective, agent, :agent].join(".")

          when :request
            target[:name] = ["/topic/" + collective, agent, :agent].join(".")

          when :direct_request
            target[:name] = ["/queue/" + collective, :nodes].join(".")

          when :directed
            target[:name] = ["/queue/" + collective, :nodes].join(".")
            target[:headers]["selector"] = "mc_identity = '#{@config.identity}'"
            target[:id] = "%s_directed_to_identity" % collective
        end

        target[:id] = target[:name] unless target[:id]

        target
      end