source: DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceItem.java @ 1415

Revision 1415, 1.6 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
RevLine 
[477]1package schedframe.scheduling;
2
[1396]3import java.util.LinkedList;
4import java.util.List;
[477]5import java.util.Map;
[1362]6import java.util.Set;
[1415]7import java.util.TreeSet;
[477]8
[1396]9import schedframe.resources.computing.ComputingResource;
10import schedframe.resources.units.ProcessingElements;
[477]11import schedframe.resources.units.ResourceUnit;
12import schedframe.resources.units.ResourceUnitName;
[1396]13import schedframe.resources.units.StandardResourceUnitName;
[477]14
[1396]15public class ResourceItem {
[477]16
17        protected Map<ResourceUnitName, ResourceUnit> usedResources;
[1415]18        protected Set<String> resourceNames;
[1362]19
[1396]20        public ResourceItem(Map<ResourceUnitName, ResourceUnit> usedResources){
[1362]21                this.usedResources = usedResources;
[1415]22                this.resourceNames = new TreeSet<String>();
[1396]23                saveResourceNames();
[477]24        }
25       
26        public Map<ResourceUnitName, ResourceUnit> getResourceUnits(){
27                return usedResources;
28        }
29       
[1396]30        public Set<String> getResourceNames(){
[1415]31                return resourceNames;
[477]32        }
[1362]33       
[1396]34        private void saveResourceNames(){
35                ProcessingElements pes = (ProcessingElements) usedResources.get(StandardResourceUnitName.PE);
36                for (ComputingResource resource : pes) {
37
38                        LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>();
39                        toExamine.push(resource);
40
41                        while (!toExamine.isEmpty()) {
42                                ComputingResource compResource = toExamine.pop();
43                                List<ComputingResource> resources = compResource.getChildren();
44                                if(resources.isEmpty()){
[1415]45                                        if(!resourceNames.contains(compResource.getFullName())){
46                                                resourceNames.add(compResource.getFullName());
[1396]47                                        }
48                                } else {
49                                        for (int i = 0; i < resources.size(); i++) {
50                                                ComputingResource resourceChild = resources.get(i);
51                                                toExamine.addLast(resourceChild);
52                                        }
53                                }
54                        }
55                }
[1317]56        }
[477]57}
Note: See TracBrowser for help on using the repository browser.