package uk.ac.imperial.lsds.seepmaster.scheduler.loadbalancing;
public enum LoadBalancingStrategyType {
DATAPARALLELWITHINPUTDATALOCALITY(0, new DataParallelWithInputDataLocalityLoadBalancingStrategy()),
LOCALITYSENSITIVE(1, new LocalitySensitiveLoadBalancingStrategy());
private int type;
private LoadBalancingStrategy strategy;
LoadBalancingStrategyType(int type, LoadBalancingStrategy strategy){
this.type = type;
this.strategy = strategy;
}
public int ofType(){
return type;
}
public static LoadBalancingStrategy clazz(int type){
for(LoadBalancingStrategyType sst : LoadBalancingStrategyType.values()){
if(sst.ofType() == type){
return sst.strategy;
}
}
return null;
}
}