class IntegerList implements SortedSet<Integer>, List<Integer> {

	@Pure
	@Override
	public boolean containsAll(Collection<?> collection) {
		if (this.values == null) {
			return false;
		}

		final SortedSet<Integer> elements = new TreeSet<>();
		for (final Object o : collection) {
			if (o instanceof Number) {
				elements.add(((Number) o).intValue());
			}
		}

		int idxStart = 0;

		for (final Integer e : elements) {
			for (; idxStart < this.values.length - 1; idxStart += 2) {
				if (e < this.values[idxStart]) {
					return false;
				}
				if ((e >= this.values[idxStart]) && (e <= this.values[idxStart + 1])) {
					break;
				}
			}
		}

		return true;
	}

	public  IntegerList();
	public  IntegerList(int value);
	public  IntegerList(int start, int end);
	public  IntegerList(Collection<? extends Integer> collection);

}