code: protected Interval<T> create(T start, boolean isStartInclusive, T end, boolean isEndInclusive){
  		Interval<T> interval = create();
  		interval.start = start;
  		interval.isStartInclusive = isStartInclusive;
  		interval.end = end;
  		interval.isEndInclusive = isEndInclusive;
  		return interval;
  	}
docs: Creates a new instance of the particular {@code Interval} subclass.
  
  @param start The start point of the interval
  @param isStartInclusive {@code true}, if the start is inclusive or false otherwise
  @param end The end point of the interval
  @param isEndInclusive {@code true}, if the end is inclusive or false otherwise
  @return The newly created interval.