def load_filter_file(file, hash)
      # collect the class => attribute => filter entries
      logger.debug { "Loading the migration filter configuration #{file}..." }
      begin
        config = YAML::load_file(file)
      rescue
        raise MigrationError.new("Could not read filter file #{file}: " + $!)
      end
      config.each do |path_s, flt|
        next if flt.nil_or_empty?
        klass, path = create_attribute_path(path_s)
        if path.empty? then
          raise MigrationError.new("Migration filter configuration path does not include a property: #{path_s}")
        elsif path.size > 1 then
          raise MigrationError.new("Migration filter configuration path with more than one property is not supported: #{path_s}")
        end
        pa = klass.standard_attribute(path.first.to_sym)
        flt_hash = hash[klass] ||= {}
        flt_hash[pa] = flt
      end
    end
def load_filter_file(file, hash)
      # collect the class => attribute => filter entries
      logger.debug { "Loading the migration filter configuration #{file}..." }
      begin
        config = YAML::load_file(file)
      rescue
        raise MigrationError.new("Could not read filter file #{file}: " + $!)
      end
      config.each do |path_s, flt|
        next if flt.nil_or_empty?
        klass, path = create_attribute_path(path_s)
        if path.empty? then
          raise MigrationError.new("Migration filter configuration path does not include a property: #{path_s}")
        elsif path.size > 1 then
          raise MigrationError.new("Migration filter configuration path with more than one property is not supported: #{path_s}")
        end
        pa = klass.standard_attribute(path.first.to_sym)
        flt_hash = hash[klass] ||= {}
        flt_hash[pa] = flt
      end
    end
Loads the filter config file into the given hash.

 @param [String] file the file to load
 @param [<Class => <String => <Object => Object>>>] hash the class => path => input value => caTissue value entries