source: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResource.java @ 1207

Revision 1207, 2.7 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources.devices;
2
3import schedframe.Initializable;
4import schedframe.events.Event;
5import schedframe.events.EventHandler;
6import schedframe.resources.Resource;
7import schedframe.resources.ResourceStatus;
8import schedframe.resources.ResourceType;
9import schedframe.resources.computing.ResourceCharacteristics;
10import schedframe.resources.computing.extensions.Extension;
11import schedframe.resources.computing.extensions.ExtensionList;
12import schedframe.resources.computing.extensions.ExtensionType;
13import schedframe.resources.computing.profiles.energy.EnergyExtension;
14import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
15import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface;
16import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface;
17
18public abstract class PhysicalResource implements Resource, Initializable{
19
20        protected String name;
21        protected ResourceType type;
22        protected String category;
23        protected ResourceStatus status;
24        protected ResourceCharacteristics resourceCharacteristic;
25        protected ExtensionList extensionList;
26
27       
28        public abstract void handleEvent(Event event);
29       
30        public abstract EventHandler getEventHandler();
31       
32        public String getName() {
33                return name;
34        }
35
36        public ResourceType getType() {
37                return type;
38        }
39
40        public String getCategory(){
41                return category;
42        }
43       
44        public abstract void setStatus(ResourceStatus newStatus);
45       
46        public ResourceStatus getStatus() {
47                return status;
48        }
49       
50        private Extension getExtension(ExtensionType type){
51                if (extensionList != null) {
52                        for (Extension extension : extensionList) {
53                                if (extension.getType() == type) {
54                                        return extension;
55                                }
56                        }
57                }
58                return null;
59        }
60       
61        public PowerInterface getPowerInterface(){
62                Extension extension = getExtension(ExtensionType.ENERGY_EXTENSION);
63                if(extension != null){
64                        EnergyExtension ee = (EnergyExtension)extension;
65                        return ee.getPowerInterface();
66                }
67                return null;
68        }
69       
70        public AirThroughputInterface getAirThroughputInterface(){
71                Extension extension = getExtension(ExtensionType.ENERGY_EXTENSION);
72                if(extension != null){
73                        EnergyExtension ee = (EnergyExtension)extension;
74                        return ee.getAirThroughputInterface();
75                }
76                return null;
77        }
78       
79        public ThermalInterface getThermalInterface(){
80                Extension extension = getExtension(ExtensionType.ENERGY_EXTENSION);
81                if(extension != null){
82                        EnergyExtension ee = (EnergyExtension)extension;
83                        return ee.getThermalInterface();
84                }
85                return null;
86        }
87       
88        public ExtensionList getExtensionList() {
89                return extensionList;
90        }
91       
92        protected void accept(Extension e){
93                extensionList.add(e);
94        }
95
96        public ResourceCharacteristics getResourceCharacteristic() {
97                return resourceCharacteristic;
98        }
99       
100}
Note: See TracBrowser for help on using the repository browser.