All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.novatec.testit.webtester.internal.implementation.PageFragmentFactory Maven / Gradle / Ivy

package info.novatec.testit.webtester.internal.implementation;

import java.util.function.Supplier;

import org.openqa.selenium.WebElement;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NonNull;

import info.novatec.testit.webtester.browser.Browser;
import info.novatec.testit.webtester.internal.implementation.pagefragments.ByteBuddyPageFragmentFactory;
import info.novatec.testit.webtester.pagefragments.PageFragment;


public interface PageFragmentFactory {

    PageFragment createInstanceOf(PageFragmentDescriptor descriptor);

    static PageFragmentFactory createInstanceFor(Browser browser) {
        return new ByteBuddyPageFragmentFactory(browser);
    }

    @Data
    @Builder
    @AllArgsConstructor(access = AccessLevel.PRIVATE)
    class PageFragmentDescriptor {
        @NonNull
        private final Class pageFragmentType;
        @NonNull
        private final Supplier webElementSupplier;
        private final String name;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy