source: DCWoRMS/trunk/src/schedframe/resources/computing/description/ExecutingResourceDescription.java @ 477

Revision 477, 2.1 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources.computing.description;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.HashMap;
6import java.util.Iterator;
7import java.util.List;
8import java.util.Map;
9
10import schedframe.Parameters;
11import schedframe.resources.ResourceType;
12import schedframe.resources.units.ResourceUnit;
13import schedframe.resources.units.ResourceUnitName;
14
15public class ExecutingResourceDescription extends AbstractResourceDescription {
16
17        protected Map<ResourceUnitName, List<ResourceUnit>> resUnits;
18        protected Parameters parameters;
19       
20        public ExecutingResourceDescription(ResourceType type) {
21                super(type);
22        }
23
24        public Parameters getParameters() {
25                return parameters;
26        }
27       
28        public String getCompResourceParameterValue(String name){
29                return getParameters().get(name).get(0).getContent();
30        }
31       
32        public void addResourceUnit(ResourceUnit unit) {
33                if (this.resUnits == null)
34                        this.resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(1);
35                List<ResourceUnit> list = null;
36                if (this.resUnits.containsKey(unit.getName())) {
37                        list = this.resUnits.get(unit.getName());
38                } else {
39                        list = new ArrayList<ResourceUnit>(1);
40                        this.resUnits.put(unit.getName(), list);
41                }
42                list.add(unit);
43        }
44       
45        public ResourceUnit getResourceUnit(ResourceUnitName unitName) throws NoSuchFieldException {
46                return getResourceUnitList(unitName).get(0);
47        }
48
49        public List<ResourceUnit> getResourceUnitList(ResourceUnitName unitName) throws NoSuchFieldException {
50                if (resUnits.containsKey(unitName))
51                        return resUnits.get(unitName);
52                else
53                        throw new NoSuchFieldException("Resource unit " + unitName + " is not available in resource " + this.id);
54        }
55
56        public Collection<ResourceUnit> getResourceUnit() {
57                if (resUnits == null)
58                        return null;
59                List<ResourceUnit> values = new ArrayList<ResourceUnit>();
60                Collection<List<ResourceUnit>> lists = resUnits.values();
61                Iterator<List<ResourceUnit>> itr = lists.iterator();
62
63                while (itr.hasNext()) {
64                        List<ResourceUnit> list = itr.next();
65                        values.addAll(list);
66                }
67
68                return values;
69        }
70
71        public Map<ResourceUnitName, List<ResourceUnit>> getResourceUnits() {
72                return resUnits;
73        }
74}
Note: See TracBrowser for help on using the repository browser.