KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hansel > stack > HanselValue


1 /*
2  * HanselValue.java
3  *
4  * Created on 22. August 2004, 14:14
5  */

6
7 package org.hansel.stack;
8
9 import org.objectweb.asm.Type;
10 import org.objectweb.asm.tree.analysis.Value;
11
12 /**
13  *
14  * @author Niklas Mehner
15  */

16 public class HanselValue implements Value {
17     public static final HanselValue ZERO_1 = new HanselValue("0", false, 1);
18     public static final HanselValue ZERO_2 = new HanselValue("0", false, 2);
19     public static final HanselValue ONE_1 = new HanselValue("1", false, 1);
20     public static final HanselValue ONE_2 = new HanselValue("1", false, 2);
21     public static final HanselValue NULL = new HanselValue("null", false, 1);
22     public static final HanselValue DONT_CARE = new HanselValue("unknown", false, 1);
23
24     private String JavaDoc value;
25     private boolean booleanType;
26     private int size;
27
28     public HanselValue(String JavaDoc value, boolean booleanType, int size) {
29         this.value = value;
30         this.booleanType = booleanType;
31         this.size = size;
32     }
33
34     public boolean isBoolType() {
35         return booleanType;
36     }
37
38     public boolean equals(Value obj) {
39         return value.equals(((HanselValue) obj).value);
40     }
41     
42     public int getSize() {
43         return size;
44     }
45     
46     public HanselValue invert() {
47         return new NotOp(this);
48     }
49
50     public HanselValue compress() {
51         return this;
52     }
53
54     public String JavaDoc toString() {
55         return value;
56     }
57     
58     public String JavaDoc toString(Type requiredType) {
59         String JavaDoc result = toString();
60
61         // Translate integers into booleans if required.
62
if (requiredType == Type.BOOLEAN_TYPE) {
63             if ("0".equals(value)) {
64                 return "false";
65             }
66  
67             if ("1".equals(value)) {
68                 return "true";
69             }
70         }
71         
72         return result;
73     }
74
75 }
76
Popular Tags