class ActuallyExecutedChangeSetFilter extends RanChangeSetFilter {

    public ActuallyExecutedChangeSetFilter(List<RanChangeSet> ranChangeSets) {
        super(ranChangeSets);
    }

    @Override
    public ChangeSetFilterResult accepts(ChangeSet changeSet) {<FILL_FUNCTION_BODY>}
}

        RanChangeSet ranChangeSet = getRanChangeSet(changeSet);
        if ((ranChangeSet != null) && ((ranChangeSet.getExecType() == null) || ranChangeSet.getExecType().equals
            (ChangeSet.ExecType.EXECUTED) || ranChangeSet.getExecType().equals(ChangeSet.ExecType.RERAN))) {
            return new ChangeSetFilterResult(true, "Changeset was executed previously", this.getClass(), getMdcName(), getDisplayName());
        } else {
            return new ChangeSetFilterResult(false, "Changeset was not previously executed", this.getClass(), getMdcName(), getDisplayName());
        }
    
<methods>public void <init>(List<liquibase.changelog.RanChangeSet>) ,public liquibase.changelog.RanChangeSet getRanChangeSet(liquibase.changelog.ChangeSet) <variables>public List<liquibase.changelog.RanChangeSet> ranChangeSets