package at.ac.tuwien.lsdc.types;

import java.util.Comparator;

public class ApplicationResourceComparator implements Comparator<Application> {

	final int BEFORE = -1;
	final int EQUAL = 0;
	final int AFTER = 1;

	@Override
	public int compare(Application a1, Application a2) {
		if (a1 == a2)
			return EQUAL;
		if (getResourceDifference(a1, a2) < 0)
			return BEFORE;
		else if (getResourceDifference(a1, a2) > 0)
			return AFTER;
		else
			return EQUAL;
	}

	public int getResourceDifference(Application a1, Application a2) {
		return a1.getSize() - a2.getSize() + a1.getRam() - a2.getRam() + a1.getCpu() - a2.getCpu();
	}

}
