package schedframe.scheduling.manager.resources; import schedframe.resources.StandardResourceType; import schedframe.scheduling.GridResourceDiscovery; import schedframe.scheduling.Scheduler; public class ResourceManagerFactory { public static ResourceManager createResourceManager(Scheduler scheduler, ManagedResources managedResources){ ManagedComputingResources managedResource = scheduler.getCompResources(); if(managedResources == null || scheduler.getType() == StandardResourceType.GS) return new GridResourceDiscovery(scheduler); else if (managedResource.getType().getName().equals(StandardResourceType.Rack)) return new ClusterResourceManager(scheduler.getCompResources(), scheduler.getChildren(), managedResources); else if (managedResource.getType().getName().equals(StandardResourceType.Node)) return new ClusterResourceManager(scheduler.getCompResources(), scheduler.getChildren(), managedResources); else if (managedResource.getType().getName().equals(StandardResourceType.Processor)) return new ClusterResourceManager(scheduler.getCompResources(), scheduler.getChildren(), managedResources); else return new ClusterResourceManager(scheduler.getCompResources(), scheduler.getChildren(), managedResources); //throw new IllegalArgumentException("ResourceType " + managedResource.getType() + " is not supported."); /*switch(managedResource.getType()){ case DataCenter: return new GridResourceDiscovery(scheduler); case Rack: return new ClusterResourceManager(scheduler.getResources(), scheduler.getChildren()); case ComputingNode: return new ClusterResourceManager(scheduler.getResources(), scheduler.getChildren()); case Processor: return new ClusterResourceManager(scheduler.getResources(), scheduler.getChildren()); default: throw new IllegalArgumentException("ResourceType " + managedResource.getType() + " is not supported."); }*/ } }