package ru.ulstu.strategy.api; import ru.ulstu.core.model.UserContainer; import ru.ulstu.user.model.User; import java.util.List; import java.util.stream.Collectors; public abstract class EntityCreateStrategy { protected abstract List getActiveEntities(); protected abstract void createEntity(User user); protected void createDefaultEntityIfNeed(List allUsers, List entities) { allUsers.forEach(user -> { if (entities .stream() .filter(entity -> entity.getUsers().contains(user)) .collect(Collectors.toSet()).isEmpty()) { createEntity(user); } }); } public void createEntityIfNeed(List allUsers) { createDefaultEntityIfNeed(allUsers, getActiveEntities()); } }