source: DCWoRMS/trunk/src/simulator/reader/EnvironmentWrapper.java @ 477

Revision 477, 4.0 KB checked in by wojtekp, 13 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        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                ArrayList<ComputingResource>tab = null;
56               
57                if(environment == null)
58                        throw new UnknownParameter("Environment parameters are not defined.");
59                Resources resources = getResources();
60                if(resources == null)
61                        return null;
62               
63                tab = new ArrayList<ComputingResource>();
64                 
65                for(int i = 0; i < resources.getComputingResourceCount(); i++){
66                        ComputingResource compRes = resources.getComputingResource(i);
67                        tab.add(compRes);
68                }
69                if(tab.size() == 0)
70                        return null;
71                else
72                        return tab.toArray(new ComputingResource[0]);
73        }
74       
75        public TimeEstimationPlugin getTimeEstimationPlugin() throws UnknownParameter{
76                if(environment == null)
77                        throw new UnknownParameter("Environment parameters are not defined.");
78                return environment.getTimeEstimationPlugin();
79        }
80       
81        public boolean initWithCompResTemplate(ComputingResource compRes, ComputingResourceTemplate template){
82
83                compRes.setClazz(template.getClazz());
84
85                compRes.setComputingResourceTypeChoiceSequence(new ComputingResourceTypeChoiceSequence());
86                compRes.getComputingResourceTypeChoiceSequence().setComputingResource(template.getComputingResource());
87                compRes.getComputingResourceTypeChoiceSequence().setResourceUnit(template.getResourceUnit());
88                compRes.getComputingResourceTypeChoiceSequence().setProfile(template.getProfile());
89                compRes.getComputingResourceTypeChoiceSequence().setParameter(template.getParameter());
90               
91                return true;
92        }
93       
94        public static Parameters extractParameters(schemas.Parameter[] parameters){
95               
96                Parameters params = null;
97               
98                if(parameters.length != 0)
99                        params = new Parameters();
100               
101                for(int i = 0; i < parameters.length; i++){
102                        schemas.Parameter parameter = parameters[i];
103                        Parameter param = new Parameter(parameter.getName());
104                        if(parameter.getParameterTypeSequence() != null && parameter.getParameterTypeSequence().getProperty() != null)
105                        {                                                       
106                                int propertyCount = parameter.getParameterTypeSequence().getPropertyCount();
107                                for(int j = 0; j < propertyCount; j++){
108                                        schemas.Property property = parameter.getParameterTypeSequence().getProperty(j);
109                                        Property prop = new Property(property.getName());
110                                        int stringValueWithUnitCount = property.getStringValueWithUnitCount();
111                                        for(int k = 0; k < stringValueWithUnitCount; k++){
112                                                prop.add(property.getStringValueWithUnit(k));
113                                        }
114                                        param.addProperty(prop);
115                                }
116                        } else {
117                                int stringValueWithUnitCount =  parameter.getStringValueWithUnitCount();
118                                for(int j = 0; j < stringValueWithUnitCount; j++){
119                                        param.add(parameter.getStringValueWithUnit(j));
120                                }
121                        }
122                        params.put(parameter.getName(), param);
123                }
124                return params;
125        }
126
127}
Note: See TracBrowser for help on using the repository browser.