package resa.optimize;

import java.util.Map;

/**
 * Created by ding on 14-4-29.
 */
public class AllocResult {

    //TODO: add expected QoS for both minReqOptAllocation and currOptAllocation
    //so that for later programme to optimize the rebalance behavior
    // (e.g. consider expected rebalance gain vs. cost)

    public static enum Status {
        INFEASIBLE, FEASIBALE
    }

    public final Status status;
    public final Map<String, Integer> minReqOptAllocation;
    public final Map<String, Integer> currOptAllocation;
    private Object context = null;

    public AllocResult(Status status, Map<String, Integer> minReqOptAllocation,
                       Map<String, Integer> currOptAllocation) {
        this.status = status;
        this.minReqOptAllocation = minReqOptAllocation;
        this.currOptAllocation = currOptAllocation;
    }

    public AllocResult(Status status, Map<String, Integer> currOptAllocation) {
        this(status, null, currOptAllocation);
    }

    public Object getContext() {
        return context;
    }

    public AllocResult setContext(Object context) {
        this.context = context;
        return this;
    }
}
