
com.automationrockstars.design.gir.webdriver.plugin.UiObjectActionPluginService Maven / Gradle / Ivy
The newest version!
/*
*
*/
package com.automationrockstars.design.gir.webdriver.plugin;
import com.automationrockstars.design.gir.webdriver.UiObject;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import java.util.List;
import java.util.ServiceLoader;
public class UiObjectActionPluginService {
private static CompositeActionPlugin instance = new CompositeActionPlugin();
private static List plugins = Lists.newArrayList();
static {
registerSpiPlugins();
}
public static UiObjectActionPlugin actionPlugins() {
return instance;
}
public static void registerPlugin(UiObjectActionPlugin plugin) {
plugins.add(plugin);
}
public static List getPlugins() {
return ImmutableList.copyOf(plugins);
}
private static void registerSpiPlugins() {
plugins.addAll(Lists.newArrayList(ServiceLoader.load(UiObjectActionPlugin.class).iterator()));
}
public static class CompositeActionPlugin implements UiObjectActionPlugin {
public void beforeClick(UiObject element) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.beforeClick(element);
}
}
public void afterClick(UiObject element) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.afterClick(element);
}
}
public void beforeSubmit(UiObject element) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.beforeSubmit(element);
}
}
public void afterSubmit(UiObject element) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.afterSubmit(element);
}
}
public void beforeSendKeys(UiObject element, CharSequence... keysToSend) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.beforeSendKeys(element, keysToSend);
}
}
public void afterSendKeys(UiObject element, CharSequence... keysToSend) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.afterSendKeys(element, keysToSend);
}
}
public void beforeClear(UiObject element) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.beforeClear(element);
}
}
public void afterClear(UiObject element) {
for (UiObjectActionPlugin plugin : plugins) {
plugin.afterClear(element);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy