// Path: src/main/java/com/rationaleemotions/internal/locators/DefaultWaitConditions.java
// public static final WaitCondition AVAILABLE = new AvailableWaitCondition();
// 
// Path: src/main/java/com/rationaleemotions/internal/locators/DefaultWaitConditions.java
// public static final WaitCondition CLICKABLE = new ClickableWaitCondition();
// 
// Path: src/main/java/com/rationaleemotions/internal/locators/DefaultWaitConditions.java
// public static final WaitCondition VISIBLE = new VisibleWaitCondition();


import static com.rationaleemotions.internal.locators.DefaultWaitConditions.AVAILABLE;
import static com.rationaleemotions.internal.locators.DefaultWaitConditions.CLICKABLE;
import static com.rationaleemotions.internal.locators.DefaultWaitConditions.VISIBLE;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.ServiceLoader;
import java.util.logging.Logger;
package com.rationaleemotions.internal.locators;



public enum WaitServiceListener {
    INSTANCE;

    private Map<String, WaitCondition> conditions = new HashMap<>();

    WaitServiceListener() {
        ServiceLoader<WaitCondition> listeners = ServiceLoader.load(WaitCondition.class);
        conditions.put(AVAILABLE.getName().toLowerCase(), AVAILABLE);
        conditions.put(VISIBLE.getName().toLowerCase(), VISIBLE);
// Path: src/main/java/com/rationaleemotions/internal/locators/DefaultWaitConditions.java
// public static final WaitCondition AVAILABLE = new AvailableWaitCondition();
// 
// Path: src/main/java/com/rationaleemotions/internal/locators/DefaultWaitConditions.java
// public static final WaitCondition CLICKABLE = new ClickableWaitCondition();
// 
// Path: src/main/java/com/rationaleemotions/internal/locators/DefaultWaitConditions.java
// public static final WaitCondition VISIBLE = new VisibleWaitCondition();


// Path: src/main/java/com/rationaleemotions/internal/locators/WaitServiceListener.java
import static com.rationaleemotions.internal.locators.DefaultWaitConditions.AVAILABLE;
import static com.rationaleemotions.internal.locators.DefaultWaitConditions.CLICKABLE;
import static com.rationaleemotions.internal.locators.DefaultWaitConditions.VISIBLE;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.ServiceLoader;
import java.util.logging.Logger;

package com.rationaleemotions.internal.locators;



public enum WaitServiceListener {
    INSTANCE;

    private Map<String, WaitCondition> conditions = new HashMap<>();

    WaitServiceListener() {
        ServiceLoader<WaitCondition> listeners = ServiceLoader.load(WaitCondition.class);
        conditions.put(AVAILABLE.getName().toLowerCase(), AVAILABLE);
        conditions.put(VISIBLE.getName().toLowerCase(), VISIBLE);
        conditions.put(CLICKABLE.getName().toLowerCase(), CLICKABLE);