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

com.moon.core.util.condition.DynamicCondition Maven / Gradle / Ivy

package com.moon.core.util.condition;

import java.util.function.BooleanSupplier;

/**
 * @author benshaoye
 */
public final class DynamicCondition implements Conditional {

    private final BooleanSupplier dynamicCondition;

    public DynamicCondition(boolean matched) {
        this(matched ? BooleanStrategy.TRUE : BooleanStrategy.FALSE);
    }

    public DynamicCondition(BooleanSupplier dynamicCondition) {
        this.dynamicCondition = dynamicCondition;
    }

    public static DynamicCondition of(boolean condition) { return new DynamicCondition(condition); }

    public static DynamicCondition of(BooleanSupplier dynamicCondition) { return new DynamicCondition(dynamicCondition); }

    /**
     * 返回是否符合条件
     *
     * @return true: 符合条件
     */
    @Override
    public boolean isTrue() {
        return dynamicCondition.getAsBoolean();
    }

    @SuppressWarnings("all")
    enum BooleanStrategy implements BooleanSupplier {
        TRUE(Boolean.TRUE),
        FALSE(Boolean.FALSE);

        private final Boolean value;

        BooleanStrategy(Boolean value) { this.value = value; }

        @Override
        public boolean getAsBoolean() { return value; }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy