// Path: src/main/java/com/frameworkium/core/ui/driver/remotes/BrowserStack.java
// public class BrowserStack {
// 
//   private BrowserStack() {
//     // hide default constructor for this util class
//   }
// 
//   public static URL getURL() throws MalformedURLException {
//     return new URL(String.format("https://%s:%s@hub-cloud.browserstack.com/wd/hub",
//         System.getenv("BROWSER_STACK_USERNAME"),
//         System.getenv("BROWSER_STACK_ACCESS_KEY")));
//   }
// 
//   public static boolean isDesired() {
//     return BROWSER_STACK.getBoolean();
//   }
// }


import static com.frameworkium.core.ui.driver.DriverSetup.Platform;
import com.frameworkium.core.common.properties.Property;
import com.frameworkium.core.ui.driver.AbstractDriver;
import com.frameworkium.core.ui.driver.remotes.BrowserStack;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
package com.frameworkium.core.ui.driver.drivers;



public class BrowserStackImpl extends AbstractDriver {

  private URL remoteURL;
  private Platform platform;
  private Capabilities capabilities;

  /**
   * Implementation of driver for BrowserStack.
   */
  public BrowserStackImpl(Platform platform, Capabilities browserCapabilities) {

    this.platform = platform;
    capabilities = browserCapabilities;
    try {
// Path: src/main/java/com/frameworkium/core/ui/driver/remotes/BrowserStack.java
// public class BrowserStack {
// 
//   private BrowserStack() {
//     // hide default constructor for this util class
//   }
// 
//   public static URL getURL() throws MalformedURLException {
//     return new URL(String.format("https://%s:%s@hub-cloud.browserstack.com/wd/hub",
//         System.getenv("BROWSER_STACK_USERNAME"),
//         System.getenv("BROWSER_STACK_ACCESS_KEY")));
//   }
// 
//   public static boolean isDesired() {
//     return BROWSER_STACK.getBoolean();
//   }
// }


// Path: src/main/java/com/frameworkium/core/ui/driver/drivers/BrowserStackImpl.java
import static com.frameworkium.core.ui.driver.DriverSetup.Platform;
import com.frameworkium.core.common.properties.Property;
import com.frameworkium.core.ui.driver.AbstractDriver;
import com.frameworkium.core.ui.driver.remotes.BrowserStack;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;

package com.frameworkium.core.ui.driver.drivers;



public class BrowserStackImpl extends AbstractDriver {

  private URL remoteURL;
  private Platform platform;
  private Capabilities capabilities;

  /**
   * Implementation of driver for BrowserStack.
   */
  public BrowserStackImpl(Platform platform, Capabilities browserCapabilities) {

    this.platform = platform;
    capabilities = browserCapabilities;
    try {
      remoteURL = BrowserStack.getURL();