package test.rewolucja.energy.profile; import test.rewolucja.energy.extension.EnergyExtension; import test.rewolucja.energy.profile.implementation.CPU_A_PowerProfile; import test.rewolucja.energy.profile.implementation.ComputingNodePowerProfile; import test.rewolucja.energy.profile.implementation.DataCenterPowerProfile; import test.rewolucja.resources.Category; import test.rewolucja.resources.ResourceType; import test.rewolucja.resources.physical.base.ComputingResource; public class PowerProfileFactory { /*public static PowerInterface createPowerProfile(ComputingResource resource, EnergyExtension ee){ PowerInterface powerProfile; if(true){ String cpuPowerClass = null; if(cpuPowerClass != null) { powerProfile = (PowerInterface) InstanceFactory.createInstance( cpuPowerClass, PowerInterface.class); if(powerProfile == null){ powerProfile = new ResourcePowerProfile(ee); //log.info("Using default cpu power profile: " + CPUPowerProfile.class.getName()); } else { String resourcePPconfig = null; //resourcePPconfig = getPropertyValue(cpuHostParam, GssimConstants.RESOURCE_CONFIG_POWER_PROFILE_CONFIG); powerProfile.init(resourcePPconfig); } } else { switch(resource.getType()){ case COMPUTING_GRID: powerProfile = null; case DATA_CENTER: powerProfile = new DataCenterPowerProfile(); break; case COMPUTING_NODE: powerProfile = new ComputingNodePowerProfile(); break; case CPU: { //CPU cpu = (CPU)resource; //powerProfile = CPUPowerProfileFactory.createCPUPowerProfile(cpu.getParent().getCategory(), ee); break; powerProfile = new CPU_A_PowerProfile(); break; } default: throw new IllegalArgumentException("ResourceType " + resource.getType() + " is not supported."); } //} } return powerProfile; }*/ public static PowerInterface createPowerProfile(ResourceType resourceType, Category category){ PowerInterface powerProfile; switch(resourceType){ case COMPUTING_GRID: powerProfile = null;break; case DATA_CENTER: powerProfile = new DataCenterPowerProfile(); break; case COMPUTING_NODE: powerProfile = new ComputingNodePowerProfile(); break; case CPU: { //CPU cpu = (CPU)resource; powerProfile = CPUPowerProfileFactory.createCPUPowerProfile(category); break; //powerProfile = new CPUPowerProfile(); break; } default: throw new IllegalArgumentException("ResourceType " + resourceType + " is not supported."); } return powerProfile; } }