class LicenseAcceptance::Strategy::File

def persist(product_relationship, missing_licenses)

def persist(product_relationship, missing_licenses)
  parent = product_relationship.parent
  parent_version = product_relationship.parent_version
  root_dir = config.persist_location
  unless Dir.exist?(root_dir)
    begin
      FileUtils.mkdir_p(root_dir)
    rescue StandardError => e
      msg = "Could not create license directory #{root_dir}"
      logger.info "#{msg}\n\t#{e.message}\n\t#{e.backtrace.join("\n\t")}"
      return [e]
    end
  end
  errs = []
  if missing_licenses.include?(parent)
    err = persist_license(root_dir, parent, parent, parent_version)
    errs << err unless err.nil?
  end
  product_relationship.children.each do |child|
    if missing_licenses.include?(child)
      err = persist_license(root_dir, child, parent, parent_version)
      errs << err unless err.nil?
    end
  end
  errs
end