public static <S,D> List<D> projectToList(Iterable<S> sourceValues, Projector<S, D> projector)
	{
		List<D> result = new ArrayList<>();
		
		if (sourceValues == null)
			return result;
		
		for (S value : sourceValues)
		{
			result.add(projector.project(value));
		}
			
		return result;
	}