KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gov > nasa > jpf > jvm > choice > DoubleThresholdGenerator


1 //
2
//Copyright (C) 2005 United States Government as represented by the
3
//Administrator of the National Aeronautics and Space Administration
4
//(NASA). All Rights Reserved.
5
//
6
//This software is distributed under the NASA Open Source Agreement
7
//(NOSA), version 1.3. The NOSA has been approved by the Open Source
8
//Initiative. See the file NOSA-1.3-JPF at the top of the distribution
9
//directory tree for the complete NOSA document.
10
//
11
//THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY
12
//KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
13
//LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
14
//SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
15
//A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT
16
//THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT
17
//DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE.
18
//
19

20 package gov.nasa.jpf.jvm.choice;
21
22 import gov.nasa.jpf.Config;
23 import gov.nasa.jpf.jvm.DoubleChoiceGenerator;
24 import gov.nasa.jpf.jvm.JVM;
25
26 /**
27 * ChoiceGenerator instance that produces a simple 3 value enumeration
28 *
29 */

30 public class DoubleThresholdGenerator extends DoubleChoiceGenerator {
31
32 double low, threshold, high;
33 int state;
34
35 public DoubleThresholdGenerator (Config conf, String JavaDoc id) {
36   super(id);
37   
38   low = conf.getDouble (id + ".low");
39   threshold = conf.getDouble(id + ".threshold");
40   high = conf.getDouble(id + ".high");
41   state = -1;
42 }
43
44 public boolean hasMoreChoices (JVM vm) {
45   return (state < 2);
46 }
47
48 public double getNextChoice (JVM vm) {
49   switch (state) {
50   case -1:
51   case 0: return low;
52   case 1: return threshold;
53   default: return high;
54   }
55 }
56
57 public void advance (JVM vm) {
58   state++;
59 }
60 }
61
Popular Tags