@Override
	public final boolean accept(final File file) {
		if (file.isDirectory()) {
			return true;
		}
		final String name = file.getName();
		int end = name.length();
		for (int i = 0; i < this.dots; i++) {
			end = name.lastIndexOf('.', end - 1);
			if (end < 0) {
				return false;
			}
		}

		return ending(name.substring(end).toLowerCase());
	}