SchedulingInfo.java 1.29 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
package mvd.jester.info;

import java.util.HashSet;
import java.util.Optional;
import java.util.Set;

/**
 * DeadlineMissInfo
 */
public class SchedulingInfo {

    private final Set<TerminationInfo> terminationInfos;
    private Optional<TerminationInfo> failedTerminationInfo;

    public SchedulingInfo() {
        this.terminationInfos = new HashSet<>();
        this.failedTerminationInfo = Optional.empty();
    }

    public SchedulingInfo(Set<TerminationInfo> terminationInfos) {
        this.terminationInfos = terminationInfos;
    }

    public boolean checkTasksetFeasible() {
        // return terminationInfos.isEmpty();
        return !terminationInfos.stream().anyMatch(t -> t.getLateness() > 0);
    }

    public void addTerminationInfo(TerminationInfo terminationInfo) {
        terminationInfos.add(terminationInfo);
    }

    /**
     * @return the terminationInfos
     */
    public Set<TerminationInfo> getTerminationInfos() {
        return terminationInfos;
    }

    /**
     * @return the failedTerminationInfo
     */
    public Optional<TerminationInfo> getFailedTerminationInfo() {
        return failedTerminationInfo;
    }

    public void setFailedTemrinationInfo(TerminationInfo failedTerminationInfo) {
        this.failedTerminationInfo = Optional.of(failedTerminationInfo);
    }
}