protected List<T> getEntities(
		@Nonnull final EntityProvider<T, ?> entities,
		@Nullable final Pageable pageable,
		@Nullable final Class<T> clazz,
		@Nullable final Sort sort)
	{
		Objects.requireNonNull(entities);
		
		Stream<? extends T> entityStream = entities
			.stream()
			.filter(this.criteria::evaluate);
		
		final Sort sortToUse = this.staticSort.orElse(sort);
		if(sortToUse != null)
		{
			entityStream = EntitySorter.sortEntitiesStream(clazz, sortToUse, entityStream);
		}
		
		entityStream = this.pageEntityStream(pageable, entityStream);
		
		final List<T> result = this.copyEntities(entityStream);
		
		if(LOG.isTraceEnabled())
		{
			LOG.trace("Found {} entries.", result.size());
		}
		return result;
	}
@Test
	void getEntities_NoCriteria_NoPageable_NoSortable_Null()
	{
		final PageableSortableCollectionQuerier<Customer> querier = new PageableSortableCollectionQuerier<>(
			new DummyWorkingCopier<>(),
			Criteria.createNoCriteria()
		);
		Assertions.assertThrows(NullPointerException.class, () -> querier.getEntities(null, Customer.class));
	}