/** * This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details. */ package edu.illinois.codingspectator.refactoringproblems.logger; import java.util.HashSet; import java.util.Set; /** * * @author Balaji Ambresh Rajkumar * @author Mohsen Vakilian * @author nchen * @author Stas Negara * */ public class ProblemsComparer { private long refactoringTimestamp= -1; private long previousTimestamp= -1; private Set<DefaultProblemWrapper> previousProblems; private long currentTimestamp= -1; private Set<DefaultProblemWrapper> currentProblems; public void setRefactoringTimestamp(long refactoringTimestamp) { this.refactoringTimestamp= refactoringTimestamp; } public void pushNewProblemsSet(Set<DefaultProblemWrapper> problems) { previousProblems= currentProblems; previousTimestamp= currentTimestamp; currentProblems= problems; currentTimestamp= System.currentTimeMillis(); } public ProblemChanges compareProblems() { return new ProblemChanges(refactoringTimestamp, currentTimestamp, setDifference(currentProblems, previousProblems), previousTimestamp, setDifference(previousProblems, currentProblems)); } /** * * @param left * @param right * @return left - right */ private Set<DefaultProblemWrapper> setDifference(Set<DefaultProblemWrapper> left, Set<DefaultProblemWrapper> right) { Set<DefaultProblemWrapper> copyOfLeft= new HashSet<DefaultProblemWrapper>(left); copyOfLeft.removeAll(right); return copyOfLeft; } }