package test.testSOP; import java.util.Comparator; import schedframe.resources.computing.Node; public class ComparatorHostLowestLoadFirst implements Comparator{ private float getMostLoadedResource(Node n) { float memLoad = 0, cpuLoad; try { memLoad = (float)1 - (float)n.getFreeMemory() / (float)n.getTotalMemory(); } catch (NoSuchFieldException e) { // TODO Auto-generated catch block e.printStackTrace(); } cpuLoad = (float)1 - (float)n.getFreeProcessorsNumber() / (float)n.getProcessorsNumber(); // log.debug("GetMostLoadedResource node "+n.getName()+": "+cpuLoad+" -- "+memLoad); if (cpuLoad > memLoad) { return cpuLoad; } else { return memLoad; } } @Override public int compare(Node node1, Node node2) { if (getMostLoadedResource(node1) > getMostLoadedResource(node2)) return 1; else if (getMostLoadedResource(node1) < getMostLoadedResource(node2)) return -1; else return 0; } }