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
Line 
1package schedframe.scheduling;
2
3import java.util.LinkedList;
4import java.util.List;
5import java.util.Map;
6import java.util.Set;
7import java.util.TreeSet;
8
9import schedframe.resources.computing.ComputingResource;
10import schedframe.resources.units.ProcessingElements;
11import schedframe.resources.units.ResourceUnit;
12import schedframe.resources.units.ResourceUnitName;
13import schedframe.resources.units.StandardResourceUnitName;
14
15public class ResourceItem {
16
17        protected Map<ResourceUnitName, ResourceUnit> usedResources;
18        protected Set<String> resourceNames;
19
20        public ResourceItem(Map<ResourceUnitName, ResourceUnit> usedResources){
21                this.usedResources = usedResources;
22                this.resourceNames = new TreeSet<String>();
23                saveResourceNames();
24        }
25       
26        public Map<ResourceUnitName, ResourceUnit> getResourceUnits(){
27                return usedResources;
28        }
29       
30        public Set<String> getResourceNames(){
31                return resourceNames;
32        }
33       
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()){
45                                        if(!resourceNames.contains(compResource.getFullName())){
46                                                resourceNames.add(compResource.getFullName());
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                }
56        }
57}
Note: See TracBrowser for help on using the repository browser.