class SetCondition extends BasicCondition<T, SetCondition<T, E>> implements SetChecks<T, E, SetCondition<T, E>> {

	@Override
	public SetCondition<T, E> hasSizeBetween(int startInclusive, int endInclusive)
	{
		require(this.subject).isNotNull();

		int setSize = this.subject.size();
		if (!((setSize >= startInclusive && setSize <= endInclusive) || (setSize <= startInclusive && setSize >= endInclusive)))
		{
			DbcAssertionError.throwNew(new IllegalArgumentException("Expected set size to be between <" + startInclusive + "> and < " + endInclusive + "> but was <" + setSize + ">"), this.message);
		}

		return result();
	}

	public  SetCondition(T subject);

}