EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.simucomframework]

COVERAGE SUMMARY FOR SOURCE FILE [SimuComConfig.java]

nameclass, %method, %block, %line, %
SimuComConfig.java0%   (0/1)0%   (0/21)0%   (0/311)0%   (0/91)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimuComConfig0%   (0/1)0%   (0/21)0%   (0/311)0%   (0/91)
<static initializer> 0%   (0/1)0%   (0/22)0%   (0/8)
SimuComConfig (Map, boolean): void 0%   (0/1)0%   (0/124)0%   (0/36)
addSimuComConfigExtension (String, SimuComConfigExtension): void 0%   (0/1)0%   (0/7)0%   (0/2)
clone (): Object 0%   (0/1)0%   (0/75)0%   (0/17)
copy (ExperimentRunDescriptor): SimuComConfig 0%   (0/1)0%   (0/8)0%   (0/3)
getBatchSize (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getBatchSize (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
getClone (): SimuComConfig 0%   (0/1)0%   (0/14)0%   (0/5)
getConfidenceHalfWidth (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getConfidenceLevel (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getConfidenceModelElementName (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getConfidenceModelElementURI (): URI 0%   (0/1)0%   (0/3)0%   (0/1)
getMinNumberOfBatches (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getRandomGenerator (): IRandomGenerator 0%   (0/1)0%   (0/13)0%   (0/3)
getSimuComConfigExtension (String): SimuComConfigExtension 0%   (0/1)0%   (0/6)0%   (0/1)
getSimulateFailures (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
getSimulateLinkingResources (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
isAutomaticBatches (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
isUseConfidence (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
setAutomaticBatches (boolean): void 0%   (0/1)0%   (0/4)0%   (0/2)
setMinNumberOfBatches (int): void 0%   (0/1)0%   (0/4)0%   (0/2)

1package de.uka.ipd.sdq.simucomframework;
2 
3import java.io.Serializable;
4import java.util.HashMap;
5import java.util.Map;
6 
7import org.apache.log4j.Logger;
8import org.eclipse.emf.common.util.URI;
9 
10import de.uka.ipd.sdq.probfunction.math.IRandomGenerator;
11import de.uka.ipd.sdq.simulation.AbstractSimulationConfig;
12import de.uka.ipd.sdq.workflow.pcm.runconfig.ExperimentRunDescriptor;
13 
14/**
15 * @author roman
16 *
17 * The class encapsulates all configuration options for SimuCom.
18 */
19public class SimuComConfig extends AbstractSimulationConfig implements Serializable, Cloneable {
20        /** Logger of this class. */
21        private static final Logger logger = Logger.getLogger(SimuComConfig.class);
22 
23        /** Serialization ID of this class. */
24        private static final long serialVersionUID = -3364130550065874984L;
25 
26        public static final String SHOULD_THROW_EXCEPTION = "shouldThrowException";
27        
28        // Default values
29        /** Default name of model element for the stop condition confidence. */
30        public static final String DEFAULT_CONFIDENCE_MODELELEMENT_NAME = "";
31        /** Stop condition confidence, URI to model element ? */
32        public static final String DEFAULT_CONFIDENCE_MODELELEMENT_URI = "";
33        /** Default selection if stop condition confidence is used. */
34        public static final Boolean DEFAULT_USE_CONFIDENCE = false;
35        /** Default value for confidence level of the stop condition confidence. */
36        public static final Integer DEFAULT_CONFIDENCE_LEVEL = 95;
37        /** Default value for the half width of the stop condition confidence.*/
38        public static final Integer DEFAULT_CONFIDENCE_HALFWIDTH = 10;
39        /** Default value for the automated batch calculation */
40        public static final Boolean DEFAULT_CONFIDENCE_USE_AUTOMATIC_BATCHES = true;
41        /** default batch size, arbitrarily chosen */
42        public static final Integer DEFAULT_CONFIDENCE_BATCH_SIZE = 200;
43        /** default minimum number of batches, arbitrarily chosen */
44        public static final Integer DEFAULT_CONFIDENCE_MIN_NUMBER_OF_BATCHES = 60;
45 
46        
47 
48        /** SimuCom configuration tab */
49        public static final String SIMULATE_FAILURES = "simulateFailures";
50        public static final String SIMULATE_LINKING_RESOURCES = "simulateLinkingResources";
51        public static final String USE_CONFIDENCE = "useConfidenceStopCondition";
52        public static final String CONFIDENCE_LEVEL = "confidenceLevel";
53        public static final String CONFIDENCE_HALFWIDTH = "confidenceHalfWidth";
54        public static final String CONFIDENCE_MODELELEMENT_URI = "confidenceModelElementURI";
55        public static final String CONFIDENCE_MODELELEMENT_NAME = "confidenceModelElementName";
56        public static final String CONFIDENCE_USE_AUTOMATIC_BATCHES = "confidenceUseAutomaticBatches";
57        public static final String CONFIDENCE_BATCH_SIZE = "confidenceBatchSize";
58        public static final String CONFIDENCE_MIN_NUMBER_OF_BATCHES = "confidenceMinNumberOfBatches";
59 
60        private boolean simulateFailures = false;
61        private boolean simulateLinkingResources = false;
62        private boolean useConfidence = false;
63        private int confidenceLevel = 0;
64        private int confidenceHalfWidth = 0;
65        private URI confidenceModelElementURI;
66        private String confidenceModelElementName;
67        /* next three are batch algorithm settings */
68        private boolean automaticBatches;
69        private int batchSize;
70        private int minNumberOfBatches;
71        // SimuCom extensions can also provide extension to the SimuCom configuration.
72        // This map stores the extension configurations.
73        private HashMap<String, SimuComConfigExtension> simuComConfigExtensions = null;
74 
75        
76 
77 
78        /**
79         * @param configuration a map which maps configuration option IDs to their values.
80         * The required keys are SimuComConfig.EXPERIMENT_RUN, SimuComConfig.SIMULATION_TIME
81         * SimuComConfig.MAXIMUM_MEASUREMENT_COUNT SimuComConfig.VERBOSE_LOGGING,
82         * SimuComConfig.DATASOURCE_ID. Optional keys are SimuComConfig.SIMULATE_FAILURES,
83         * SimuComConfig.SIMULATE_LINKING_RESOURCES and SimuComConfig.USE_CONFIDENCE. If
84         * SimuComConfig.USE_CONFIDENCE is set to true, you also need to set
85         * SimuComConfig.CONFIDENCE_LEVEL, SimuComConfig.CONFIDENCE_HALFWIDTH,
86         * SimuComConfig.CONFIDENCE_MODELELEMENT_NAME, SimuComConfig.CONFIDENCE_MODELELEMENT_URI
87         *
88         */
89        public SimuComConfig(Map<String,Object> configuration, boolean debug){
90            super(configuration, debug);
91                simuComConfigExtensions = new HashMap<String, SimuComConfigExtension>();
92                try {
93                        if (configuration.containsKey(SIMULATE_FAILURES)){
94                                this.simulateFailures = (Boolean)configuration.get(
95                                                SIMULATE_FAILURES);
96                        }
97 
98                        if (configuration.containsKey(SIMULATE_LINKING_RESOURCES)){
99                                this.simulateLinkingResources = (Boolean)configuration.get(
100                                                SIMULATE_LINKING_RESOURCES);
101                        }
102 
103                        // confidence information is optional in the map. It this.useConfidence defaults to false.
104                        if (configuration.containsKey(USE_CONFIDENCE)) {
105                                this.useConfidence = (Boolean) configuration
106                                                .get(USE_CONFIDENCE);
107                                this.confidenceLevel = Integer.valueOf((String) configuration
108                                                .get(CONFIDENCE_LEVEL));
109                                this.confidenceHalfWidth = Integer
110                                                .valueOf((String) configuration
111                                                                .get(CONFIDENCE_HALFWIDTH));
112                                this.confidenceModelElementName = (String) configuration
113                                                .get(CONFIDENCE_MODELELEMENT_NAME);
114                                this.confidenceModelElementURI = URI
115                                                .createURI((String) configuration
116                                                                .get(CONFIDENCE_MODELELEMENT_URI));
117                                
118                                this.automaticBatches = (Boolean) configuration.get(CONFIDENCE_USE_AUTOMATIC_BATCHES);
119                                if (!this.automaticBatches){
120                                        //only need batch settings if they are manually defined
121                                        this.batchSize = Integer.valueOf((String) configuration
122                                                        .get(CONFIDENCE_BATCH_SIZE));
123                                        this.minNumberOfBatches = Integer.valueOf((String) configuration
124                                                        .get(CONFIDENCE_MIN_NUMBER_OF_BATCHES));
125                                        
126                                }
127 
128                        }
129                        
130                } catch (Exception e) {
131                        throw new RuntimeException("Setting up properties failed, please check launch config (check all tabs).", e);
132                }
133        }
134        
135        public void addSimuComConfigExtension(String id, SimuComConfigExtension simuComConfigExtension) {
136                simuComConfigExtensions.put(id, simuComConfigExtension);
137        }
138        
139        public SimuComConfigExtension getSimuComConfigExtension(String id) {
140                return simuComConfigExtensions.get(id);
141        }
142 
143        public boolean getSimulateFailures() {
144                return simulateFailures;
145        }
146 
147        public boolean getSimulateLinkingResources() {
148                return simulateLinkingResources;
149        }
150 
151        public boolean isUseConfidence() {
152                return useConfidence;
153        }
154 
155        public int getConfidenceLevel() {
156                return confidenceLevel;
157        }
158 
159        public int getConfidenceHalfWidth() {
160                return confidenceHalfWidth;
161        }
162 
163        public String getConfidenceModelElementName() {
164                return confidenceModelElementName;
165        }
166 
167        public URI getConfidenceModelElementURI() {
168                return confidenceModelElementURI;
169        }
170 
171        /**Returns a copy of the instance with a replaced descriptor.
172         * @param descriptor Descriptor of the new instance.
173         * @return Copy of the instance.
174         */
175        public SimuComConfig copy(ExperimentRunDescriptor descriptor) {
176                SimuComConfig result = getClone();
177 
178                result.descriptor = descriptor;
179                return result;
180        }
181 
182        @Override
183        protected Object clone() throws CloneNotSupportedException {
184                SimuComConfig config = (SimuComConfig) super.clone();
185                config.confidenceHalfWidth = this.confidenceHalfWidth;
186                config.confidenceLevel = this.confidenceLevel;
187                config.confidenceModelElementName = new String(this.confidenceModelElementName);
188                config.maxMeasurementsCount = this.maxMeasurementsCount;
189                config.nameExperimentRun = new String (this.nameExperimentRun);
190                config.recorderName = new String(this.recorderName);
191                config.simulateFailures = this.simulateFailures;
192                config.simulateLinkingResources = this.simulateLinkingResources;
193                config.simuTime = this.simuTime;
194                config.useConfidence = this.useConfidence;
195 
196                // Warning: References are used in the following section instead of cloning the objects/arrays.
197                config.confidenceModelElementURI = this.confidenceModelElementURI;
198                config.descriptor = this.descriptor;
199                config.randomNumberGenerator = this.randomNumberGenerator;
200                config.randomSeed = this.randomSeed;
201                config.recorderConfig = this.recorderConfig;
202 
203                return config;
204        }
205 
206        /**
207         * @return Returns a clone of this instance.
208         */
209        public SimuComConfig getClone() {
210                SimuComConfig config = null;
211                try {
212                        config = (SimuComConfig) clone();
213                } catch (CloneNotSupportedException e) {
214                        logger.fatal("Could not clone configuration.", e);
215                }
216                return config;
217        }
218        
219        public void setAutomaticBatches(boolean automaticBatches) {
220                this.automaticBatches = automaticBatches;
221        }
222 
223        public boolean isAutomaticBatches() {
224                return this.automaticBatches;
225        }
226 
227        public void getBatchSize(int batchSize) {
228                this.batchSize = batchSize;
229        }
230        
231        public int getBatchSize() {
232                return this.batchSize;
233        }
234        
235        public void setMinNumberOfBatches(int minNumberOfBatches) {
236                this.minNumberOfBatches = minNumberOfBatches;
237        }
238 
239        public int getMinNumberOfBatches() {
240                return this.minNumberOfBatches;
241        }
242        
243    public IRandomGenerator getRandomGenerator() {
244        if (randomNumberGenerator == null) {
245            randomNumberGenerator = new SimuComDefaultRandomNumberGenerator(this.randomSeed);
246        }
247        return randomNumberGenerator;
248    }
249 
250 
251}

[all classes][de.uka.ipd.sdq.simucomframework]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov