package de.rwth.idsg.bikeman.utils; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * @author Sevket Goekay <goekay@dbis.rwth-aachen.de> * @since 16.12.2014 */ @Slf4j @Getter @Setter public class ItemIdComparator<T> { private List<T> newList; private List<T> databaseList; // ------------------------------------------------------------------------- public List<T> getForUpdate() { Set<T> intersection = new HashSet<>(newList); intersection.retainAll(databaseList); log.debug("forUpdate: {}", intersection.size()); return new ArrayList<>(intersection); } public List<T> getForInsert() { Set<T> difference = new HashSet<>(newList); difference.removeAll(databaseList); log.debug("forInsert: {}", difference.size()); return new ArrayList<>(difference); } public List<T> getForDelete() { Set<T> difference = new HashSet<>(databaseList); difference.removeAll(newList); log.debug("forDelete: {}", difference.size()); return new ArrayList<>(difference); } }