/*
* Copyright 2004-2016 EPAM Systems
*
* This file is part of JDI project.
*
* JDI is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JDI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JDI. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epam.jdi.uitests.web.selenium.elements.composite;
import com.epam.jdi.uitests.web.selenium.driver.DriverTypes;
import com.epam.jdi.uitests.web.selenium.elements.CascadeInit;
import com.epam.jdi.uitests.web.selenium.preconditions.IPreconditions;
import com.epam.jdi.uitests.web.selenium.preconditions.PreconditionsState;
import org.openqa.selenium.WebDriver;
import java.util.function.Supplier;
import static com.epam.jdi.uitests.web.WebSettings.getDriverFactory;
import static com.epam.jdi.uitests.web.WebSettings.useDriver;
/**
* Created by Roman_Iovlev on 8/30/2015.
*/
public class Site {
public static Class currentSite;
public static <T> void Init(Class<T> site) {
CascadeInit.initStaticPages(site, getDriverFactory().currentDriverName);
currentSite = site;
}
public static <T extends Site> T Init(Class<T> site, String driverName) {
return CascadeInit.initPages(site, driverName);
}
public static <T extends Site> void Init(Class<T> site, DriverTypes driver) {
Init(site, useDriver(driver));
}
public static <T extends Site> void Init(Class<T> site, Supplier<WebDriver> driver) {
Init(site, useDriver(driver));
}
protected String driverName;
public void setDriverName(String driverName) { this.driverName = driverName; }
public void isInState(IPreconditions precondition) {
PreconditionsState.isInState(precondition, getDriverFactory().getDriver(driverName));
}
}