source: DCWoRMS/branches/coolemall/src/simulator/reader/EnvironmentWrapper.java @ 1207

Revision 1207, 4.1 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package simulator.reader;
2
3import java.util.ArrayList;
4
5import org.qcg.broker.schemas.exception.UnknownParameter;
6
7import schedframe.Parameter;
8import schedframe.Parameters;
9import schedframe.Property;
10import schemas.ComputingResource;
11import schemas.ComputingResourceTemplate;
12import schemas.ComputingResourceTypeChoiceSequence;
13import schemas.Environment;
14import schemas.Resources;
15import schemas.Templates;
16import schemas.TimeEstimationPlugin;
17
18public class EnvironmentWrapper {
19
20        private Environment environment;
21
22        public void wrap(Environment environment) {
23                this.environment = environment;
24        }
25
26        public Templates getTemplates() throws UnknownParameter{
27                if(environment == null)
28                        throw new UnknownParameter("Environment parameters are not defined.");
29                return environment.getTemplates();
30        }
31       
32        public ComputingResourceTemplate getTemplate(String templateId) throws UnknownParameter{
33                Templates templates = getTemplates() ;
34       
35                if(templates == null)
36                        return null;
37               
38                for (int i = 0; i < templates.getComputingResourceTemplateCount(); i++){
39                        schemas.ComputingResourceTemplate template = templates.getComputingResourceTemplate(i);
40                        if(template.getName().equals(templateId)){
41                                return template;
42                        }
43                }
44                return null;
45        }
46       
47        public Resources getResources() throws UnknownParameter{
48                if(environment == null)
49                        throw new UnknownParameter("Environment parameters are not defined.");
50                return environment.getResources();
51        }
52       
53        public ComputingResource[] getComputingResources() throws UnknownParameter{
54               
55                if(environment == null)
56                        throw new UnknownParameter("Environment parameters are not defined.");
57                Resources resources = getResources();
58                if(resources == null)
59                        return null;
60               
61                ArrayList<ComputingResource> computingResources = new ArrayList<ComputingResource>();
62                 
63                for(int i = 0; i < resources.getComputingResourceCount(); i++){
64                        ComputingResource compRes = resources.getComputingResource(i);
65                        computingResources.add(compRes);
66                }
67                if(computingResources.size() == 0)
68                        return null;
69                else
70                        return computingResources.toArray(new ComputingResource[0]);
71        }
72       
73        public TimeEstimationPlugin getTimeEstimationPlugin() throws UnknownParameter{
74                if(environment == null)
75                        throw new UnknownParameter("Environment parameters are not defined.");
76                return environment.getTimeEstimationPlugin();
77        }
78       
79        public boolean initWithCompResTemplate(ComputingResource compRes, ComputingResourceTemplate template){
80
81                compRes.setClazz(template.getClazz());
82
83                compRes.setComputingResourceTypeChoiceSequence(new ComputingResourceTypeChoiceSequence());
84                compRes.getComputingResourceTypeChoiceSequence().setComputingResource(template.getComputingResource());
85                compRes.getComputingResourceTypeChoiceSequence().setResourceUnit(template.getResourceUnit());
86                compRes.getComputingResourceTypeChoiceSequence().setProfile(template.getProfile());
87                compRes.getComputingResourceTypeChoiceSequence().setParameter(template.getParameter());
88               
89                return true;
90        }
91       
92        public static Parameters extractParameters(schemas.Parameter[] parameters){
93               
94                Parameters params = null;
95               
96                if(parameters.length != 0)
97                        params = new Parameters();
98               
99                for(int i = 0; i < parameters.length; i++){
100                        schemas.Parameter parameter = parameters[i];
101                        Parameter param = new Parameter(parameter.getName());
102                        if(parameter.getParameterTypeSequence() != null && parameter.getParameterTypeSequence().getProperty() != null)
103                        {                                                       
104                                int propertyCount = parameter.getParameterTypeSequence().getPropertyCount();
105                                for(int j = 0; j < propertyCount; j++){
106                                        schemas.Property property = parameter.getParameterTypeSequence().getProperty(j);
107                                        Property prop = new Property(property.getName());
108                                        int stringValueWithUnitCount = property.getStringValueWithUnitCount();
109                                        for(int k = 0; k < stringValueWithUnitCount; k++){
110                                                prop.add(property.getStringValueWithUnit(k));
111                                        }
112                                        param.addProperty(prop);
113                                }
114                        } else {
115                                int stringValueWithUnitCount =  parameter.getStringValueWithUnitCount();
116                                for(int j = 0; j < stringValueWithUnitCount; j++){
117                                        param.add(parameter.getStringValueWithUnit(j));
118                                }
119                        }
120                        params.put(parameter.getName(), param);
121                }
122                return params;
123        }
124
125}
Note: See TracBrowser for help on using the repository browser.