package liquibase.changelog.filter; import liquibase.changelog.ChangeSet; import liquibase.changelog.RanChangeSet; import java.util.List; public class NotRanChangeSetFilter implements ChangeSetFilter { public List<RanChangeSet> ranChangeSets; public NotRanChangeSetFilter(List<RanChangeSet> ranChangeSets) { this.ranChangeSets = ranChangeSets; } @Override @SuppressWarnings({"RedundantIfStatement"}) public ChangeSetFilterResult accepts(ChangeSet changeSet) { for (RanChangeSet ranChangeSet : ranChangeSets) { if (ranChangeSet.getId().equalsIgnoreCase(changeSet.getId()) && ranChangeSet.getAuthor().equalsIgnoreCase(changeSet.getAuthor()) && ranChangeSet.getChangeLog().replaceFirst("^classpath:", "").equalsIgnoreCase(changeSet.getFilePath().replaceFirst("^classpath:", ""))) { return new ChangeSetFilterResult(false, "Change set already ran", this.getClass()); } } return new ChangeSetFilterResult(true, "Change set not yet ran", this.getClass()); } }