code: def get_resolved_jars_for_coordinates(self, coordinates, memo=None):
      
      def to_resolved_jar(jar_ref, jar_path):
        return ResolvedJar(coordinate=M2Coordinate(org=jar_ref.org,
                                                   name=jar_ref.name,
                                                   rev=jar_ref.rev,
                                                   classifier=jar_ref.classifier,
                                                   ext=jar_ref.ext),
                           cache_path=jar_path)
      resolved_jars = OrderedSet()
      def create_collection(dep):
        return OrderedSet([dep])
      for jar in coordinates:
        classifier = jar.classifier if self._conf == 'default' else self._conf
        jar_module_ref = IvyModuleRef(jar.org, jar.name, jar.rev, classifier, jar.ext)
        for module_ref in self.traverse_dependency_graph(jar_module_ref, create_collection, memo):
          for artifact_path in self._artifacts_by_ref[module_ref.unversioned]:
            resolved_jars.add(to_resolved_jar(module_ref, artifact_path))
      return resolved_jars
docs: Collects jars for the passed coordinates.
  
      Because artifacts are only fetched for the "winning" version of a module, the artifacts
      will not always represent the version originally declared by the library.
  
      This method is transitive within the passed coordinates dependencies.
  
      :param coordinates collections.Iterable: Collection of coordinates to collect transitive
                                               resolved jars for.
      :param memo: See `traverse_dependency_graph`.
      :returns: All the artifacts for all of the jars for the provided coordinates,
                including transitive dependencies.
      :rtype: list of :class:`pants.java.jar.ResolvedJar`