def qualify(change_or_pattern)
      return true unless self.defined?
      rules = get_rule(change_or_pattern)

      # define behaviors for when there are no rules applying to a given pattern
      if rules.empty?

        if change_or_pattern.respond_to?(:text) or
            change_or_pattern.respond_to?(:value) or
            change_or_pattern.subject.is_a?(Doc)
          return true
        end
        report(:ValidateError, change_or_pattern)
        return false
      end
      results = rules.collect do |rule|
        rule.qualify change_or_pattern
      end
      !results.any? do |qualified| !qualified end
    end
def qualify(change_or_pattern)
      return true unless self.defined?
      rules = get_rule(change_or_pattern)

      # define behaviors for when there are no rules applying to a given pattern
      if rules.empty?

        if change_or_pattern.respond_to?(:text) or
            change_or_pattern.respond_to?(:value) or
            change_or_pattern.subject.is_a?(Doc)
          return true
        end
        report(:ValidateError, change_or_pattern)
        return false
      end
      results = rules.collect do |rule|
        rule.qualify change_or_pattern
      end
      !results.any? do |qualified| !qualified end
    end
def validate
 @param change_or_pattern [Duxml::Change, Duxml::Pattern] applies applicable rule type and subject
   to given change_or_pattern and generates errors when disqualified
 @return [Boolean] false if any rule disqualifies; true if they all pass