ComparableFunctions.java

package eu.javaexperience.functional;

import eu.javaexperience.interfaces.simple.getBy.GetBy1;

public class ComparableFunctions
{
	public static <C extends Comparable<C>> GetBy1<Boolean, C> isBetween(C min, C max)
	{
		return new GetBy1<Boolean, C>()
		{
			@Override
			public Boolean getBy(C a)
			{
				return
					min.compareTo(a) <= 0
				&&
					a.compareTo(max) <= 0;
			}
		};
	}
	
	public static <C extends Comparable<C>> GetBy1<Boolean, C> isLessThan(C val)
	{
		return new GetBy1<Boolean, C>()
		{
			@Override
			public Boolean getBy(C a)
			{
				return a.compareTo(val) < 0;
			}
		};
	}
	
	public static <C extends Comparable<C>> GetBy1<Boolean, C> isLessThanEquals(C val)
	{
		return new GetBy1<Boolean, C>()
		{
			@Override
			public Boolean getBy(C a)
			{
				return a.compareTo(val) <= 0;
			}
		};
	}
	
	public static <C extends Comparable<C>> GetBy1<Boolean, C> isGreaterThan(C val)
	{
		return new GetBy1<Boolean, C>()
		{
			@Override
			public Boolean getBy(C a)
			{
				return a.compareTo(val) > 0;
			}
		};
	}
	
	public static <C extends Comparable<C>> GetBy1<Boolean, C> isGreaterThanEquals(C val)
	{
		return new GetBy1<Boolean, C>()
		{
			@Override
			public Boolean getBy(C a)
			{
				return a.compareTo(val) >= 0;
			}
		};
	}
	
	public static <C extends Comparable<C>> GetBy1<Boolean, C> isEquals(C val)
	{
		return new GetBy1<Boolean, C>()
		{
			@Override
			public Boolean getBy(C a)
			{
				return a.compareTo(val) == 0;
			}
		};
	}
}