BooleanPreconditions.java

package com.github.choonchernlim.betterPreconditions.preconditions;

import com.github.choonchernlim.betterPreconditions.core.Matcher;
import com.github.choonchernlim.betterPreconditions.core.PreconditionException;
import com.github.choonchernlim.betterPreconditions.core.Preconditions;
import com.github.choonchernlim.betterPreconditions.exception.BooleanFalsePreconditionException;
import com.github.choonchernlim.betterPreconditions.exception.BooleanTruePreconditionException;
import static com.github.choonchernlim.betterPreconditions.preconditions.PreconditionFactory.expect;

/**
 * Boolean related preconditions.
 */
public class BooleanPreconditions extends Preconditions<BooleanPreconditions, Boolean> {
    /**
     * Package constructor.
     *
     * @param value Value
     * @param label Label
     */
    BooleanPreconditions(final Boolean value, final String label) {
        super(value, label);
    }

    /**
     * Ensures boolean is true.
     *
     * @return Current instance
     */
    public BooleanPreconditions toBeTrue() {
        return customMatcher(new Matcher<Boolean>() {
            @Override
            public boolean match(final Boolean value, final String label) {
                return expect(value, label).not().toBeNull().check();
            }

            @Override
            public PreconditionException getException(final Boolean value, final String label) {
                return new BooleanFalsePreconditionException(value, label);
            }

            @Override
            public PreconditionException getNegatedException(final Boolean value, final String label) {
                return new BooleanTruePreconditionException(value, label);
            }
        });
    }
}