// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/util/OperatingSystem.java
// public enum OperatingSystem {
// 
//   WINDOWS, MAC_OS, UNIX;
// 
//   /**
//    * Returns the right instance of the Operation System.
//    *
//    * @see SystemUtils#IS_OS_MAC
//    * @see SystemUtils#IS_OS_WINDOWS
//    */
//   public static OperatingSystem detect() {
//     if (SystemUtils.IS_OS_MAC) {
//       return MAC_OS;
//     } else if (SystemUtils.IS_OS_WINDOWS) {
//       return WINDOWS;
//     } else {
//       return UNIX;
//     }
//   }
// 
// }


import io.arivera.oss.embedded.rabbitmq.util.OperatingSystem;
import java.net.URL;
package io.arivera.oss.embedded.rabbitmq;



/**
 * Class used to allow for the user to specify a custom URL to download the RabbitMQ binary from.
 * <p>
 * Since this is basically a hardcoded URL, there's no ability to change the artifact to be downloaded based on
 * the OS the system is currently running. Use a {@link BaseVersion} if that capability is needed.
 *
 * @see EmbeddedRabbitMqConfig.Builder#downloadFrom(ArtifactRepository)
 * @see EmbeddedRabbitMqConfig.Builder#downloadFrom(URL, String)
 */
class SingleArtifactRepository implements ArtifactRepository {

  private final URL downloadSource;

  SingleArtifactRepository(URL downloadSource) {
    this.downloadSource = downloadSource;
  }

  @Override
// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/util/OperatingSystem.java
// public enum OperatingSystem {
// 
//   WINDOWS, MAC_OS, UNIX;
// 
//   /**
//    * Returns the right instance of the Operation System.
//    *
//    * @see SystemUtils#IS_OS_MAC
//    * @see SystemUtils#IS_OS_WINDOWS
//    */
//   public static OperatingSystem detect() {
//     if (SystemUtils.IS_OS_MAC) {
//       return MAC_OS;
//     } else if (SystemUtils.IS_OS_WINDOWS) {
//       return WINDOWS;
//     } else {
//       return UNIX;
//     }
//   }
// 
// }


// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/SingleArtifactRepository.java
import io.arivera.oss.embedded.rabbitmq.util.OperatingSystem;
import java.net.URL;

package io.arivera.oss.embedded.rabbitmq;



/**
 * Class used to allow for the user to specify a custom URL to download the RabbitMQ binary from.
 * <p>
 * Since this is basically a hardcoded URL, there's no ability to change the artifact to be downloaded based on
 * the OS the system is currently running. Use a {@link BaseVersion} if that capability is needed.
 *
 * @see EmbeddedRabbitMqConfig.Builder#downloadFrom(ArtifactRepository)
 * @see EmbeddedRabbitMqConfig.Builder#downloadFrom(URL, String)
 */
class SingleArtifactRepository implements ArtifactRepository {

  private final URL downloadSource;

  SingleArtifactRepository(URL downloadSource) {
    this.downloadSource = downloadSource;
  }

  @Override
  public URL getUrl(Version version, OperatingSystem operatingSystem) {