package ru.yandex.autotests.direct.intapi.java.steps;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ru.yandex.autotests.direct.intapi.java.core.DirectJavaIntapiStepsContext;
import ru.yandex.autotests.direct.utils.BaseSteps;
import ru.yandex.autotests.direct.utils.config.DirectTestRunProperties;

/*
 * todo javadoc
 */
public class DirectJavaIntapiSteps {

    private static final Logger LOG = LoggerFactory.getLogger(DirectJavaIntapiSteps.class);

    private DirectJavaIntapiStepsContext context;

    public DirectJavaIntapiSteps(DirectTestRunProperties properties) {
        this.context = new DirectJavaIntapiStepsContext().withProperties(properties);
    }

    public DirectJavaIntapiSteps() {
        this(DirectTestRunProperties.getInstance());
    }

    public DisplayCanvasSteps displayCanvasSteps() {
        return BaseSteps.getInstance(DisplayCanvasSteps.class, context);
    }

    public MetrikaExportControllerSteps metrikaExportControllerSteps() {
        return BaseSteps.getInstance(MetrikaExportControllerSteps.class, context);
    }

    public ShowConditionsControllerSteps showConditionsControllerSteps() {
        return BaseSteps.getInstance(ShowConditionsControllerSteps.class, context);
    }

    public BalanceClientControllerSteps balanceClientSteps() {
        return BaseSteps.getInstance(BalanceClientControllerSteps.class, context);
    }

    public MobileAppControllerSteps mobileAppControllerSteps() {
        return BaseSteps.getInstance(MobileAppControllerSteps.class, context);
    }

    public BidModifierControllerSteps bidModifierControllerSteps() {
        return BaseSteps.getInstance(BidModifierControllerSteps.class, context);
    }

    public Logger log() {
        return LOG;
    }

    public ClientsControllerSteps clientsControllerSteps() {
        return BaseSteps.getInstance(ClientsControllerSteps.class, context);
    }
}
