source: DCWoRMS/trunk/src/test/jobschema/TaskRequirementsNewImpl.java @ 742

Revision 742, 4.2 KB checked in by wojtekp, 12 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package test.jobschema;
2
3import java.util.ArrayList;
4
5import org.qcg.broker.schemas.exception.NoSuchParamException;
6import org.qcg.broker.schemas.jobdesc.ComputingResourceType;
7import org.qcg.broker.schemas.jobdesc.RequirementsType;
8import org.qcg.broker.schemas.jobdesc.ResourceRequirementsType;
9import org.qcg.broker.schemas.jobdesc.types.ComputingParameterName;
10import org.qcg.broker.schemas.jobdesc.wrapper.ComputingResourceJobDescParamExplorer;
11import org.qcg.broker.schemas.jobdesc.wrapper.impl.ComputingResourceParamExplorerImpl;
12import org.qcg.broker.schemas.jobdesc.wrapper.impl.TaskRequirementsImpl;
13
14public class TaskRequirementsNewImpl extends TaskRequirementsImpl{
15        protected double[] getDoubleValues(ComputingParameterName param, ValueType valueType) throws NoSuchParamException{
16                RequirementsType req = null;
17                ResourceRequirementsType taskResReq = null;
18                ComputingResourceType compRes = null;
19                double values[] = null;
20                double value = -1;
21               
22                ArrayList<Double> list = null;
23                ComputingResourceJobDescParamExplorer explorer = null;
24               
25                req = task.getRequirements();
26                if(req == null)
27                        throw new NoSuchParamException("Requirements are not defined.");
28               
29                taskResReq = req.getResourceRequirements();
30                if(taskResReq == null)
31                        throw new NoSuchParamException("Resource requirements are not defined.");
32               
33                list = new ArrayList<Double>();
34                explorer = new ComputingResourceParamExplorerImpl();
35                //explorer.setResourceTemplates(req.getResourceTemplates());
36               
37               
38                for(int i = 0; i < taskResReq.getComputingResourceCount(); i++){
39                        compRes = taskResReq.getComputingResource(i);
40                        explorer.explore(compRes);
41                       
42                        values = null;
43                        value = -1;
44                        try {
45                                switch(param){
46                                       
47                                case MEMORY:
48                                                switch(valueType) {
49                                                        case DOUBLE_VALUE: values = explorer.getMemory();
50                                                                break;
51                                                        case MIN_VALUE: value = explorer.getMinMemory();
52                                                                break;
53                                                        case MAX_VALUE: value = explorer.getMaxMemory();
54                                                                break;
55                                                }
56                                                 
57                                                break;
58                                       
59                                        case FREEMEMORY:
60                                                switch(valueType) {
61                                                        case DOUBLE_VALUE: values = explorer.getFreememory();
62                                                                break;
63                                                        case MIN_VALUE: value = explorer.getMinFreememory();
64                                                                break;
65                                                        case MAX_VALUE: value = explorer.getMaxFreememory();
66                                                                break;
67                                                }
68                                               
69                                                break;
70                                               
71                                        case CPUCOUNT:
72                                                switch(valueType) {
73                                                        case DOUBLE_VALUE: values = explorer.getCpucount();
74                                                                break;
75                                                        case MIN_VALUE: value = explorer.getMinCpucount();
76                                                                break;
77                                                        case MAX_VALUE: value = explorer.getMaxCpucount();
78                                                                break;
79                                                }
80                                                 
81                                                break;
82                                               
83                                        case FREECPUS:
84                                                switch(valueType) {
85                                                        case DOUBLE_VALUE: values = explorer.getFreecpus();
86                                                                break;
87                                                        case MIN_VALUE: value = explorer.getMinFreecpus();
88                                                                break;
89                                                        case MAX_VALUE: value = explorer.getMaxFreecpus();
90                                                                break;
91                                                }
92                                               
93                                                break;
94
95                                        case CPUSPEED:
96                                                switch(valueType) {
97                                                        case DOUBLE_VALUE: values = explorer.getCpuspeed();
98                                                                break;
99                                                        case MIN_VALUE: value = explorer.getMinCpuspeed();
100                                                                break;
101                                                        case MAX_VALUE: value = explorer.getMaxCpuspeed();
102                                                                break;
103                                                }
104                                               
105                                                break;
106                                               
107                                        case DISKSPACE:
108                                                switch(valueType) {
109                                                        case DOUBLE_VALUE: values = explorer.getDiskspace();
110                                                                break;
111                                                        case MIN_VALUE: value = explorer.getMinDiskspace();
112                                                                break;
113                                                        case MAX_VALUE: value = explorer.getMaxDiskspace();
114                                                                break;
115                                                }
116                                                 
117                                                break;
118
119                                        case FREEDISKSPACE:
120                                                switch(valueType) {
121                                                        case DOUBLE_VALUE: values = explorer.getFreediskspace();
122                                                                break;
123                                                        case MIN_VALUE: value = explorer.getMinFreediskspace();
124                                                                break;
125                                                        case MAX_VALUE: value = explorer.getMaxFreediskspace();
126                                                                break;
127                                                }
128                                               
129                                                break;
130                                }
131                        } catch (NoSuchParamException e){
132                                values = null;
133                                value = -1;
134                        }
135                       
136                        if(valueType == ValueType.DOUBLE_VALUE && values != null && values.length > 0){
137                                list.add(values[0]);
138                        } else if(valueType != ValueType.DOUBLE_VALUE && value != -1){
139                                list.add(value);
140                        }
141                       
142                }
143               
144                values = new double[list.size()];
145                for(int i = 0; i < list.size(); i++){
146                        values[i] = list.get(i);
147                }
148               
149                return values;
150        }
151}
Note: See TracBrowser for help on using the repository browser.