def link_with? link
            return true if link.value.nil?
            link.value.keys.inject({}) { |h,k| h[k]=@payload[k] if @payload.has_key?(k); h }.eql? link.value
        end
def link_with? link
            return true if link.value.nil?
            link.value.keys.inject({}) { |h,k| h[k]=@payload[k] if @payload.has_key?(k); h }.eql? link.value
        end
tries to link the Particle with the given Link

 @param [Link] link the link to try to link with

 returns true if the value of the Link is nil
 otherwise checks if the extracted key values pairs from the Particle
 payload using the Link value keys as selectors, equals the Link value

 @return [Boolean] true if the Link links with the Particle