CollectionPreconditions.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.CollectionEmptyPreconditionException;
import com.github.choonchernlim.betterPreconditions.exception.CollectionNotEmptyPreconditionException;
import static com.github.choonchernlim.betterPreconditions.preconditions.PreconditionFactory.expect;
import java.util.Collection;
/**
* Collection related preconditions.
*/
public class CollectionPreconditions extends Preconditions<CollectionPreconditions, Collection> {
/**
* Package constructor.
*
* @param value Value
* @param label Label
*/
CollectionPreconditions(final Collection value, final String label) {
super(value, label);
}
/**
* Ensures collection is empty.
*
* @return Current instance
*/
public CollectionPreconditions toBeEmpty() {
return customMatcher(new Matcher<Collection>() {
@Override
public boolean match(final Collection value, final String label) {
return expect(value, label).not().toBeNull().check().isEmpty();
}
@Override
public PreconditionException getException(final Collection value, final String label) {
return new CollectionNotEmptyPreconditionException(value, label);
}
@Override
public PreconditionException getNegatedException(Collection value, String label) {
return new CollectionEmptyPreconditionException(value, label);
}
});
}
}