KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > org > apache > bcel > internal > classfile > ConstantInteger


1
2 package com.sun.org.apache.bcel.internal.classfile;
3
4 /* ====================================================================
5  * The Apache Software License, Version 1.1
6  *
7  * Copyright (c) 2001 The Apache Software Foundation. All rights
8  * reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  *
14  * 1. Redistributions of source code must retain the above copyright
15  * notice, this list of conditions and the following disclaimer.
16  *
17  * 2. Redistributions in binary form must reproduce the above copyright
18  * notice, this list of conditions and the following disclaimer in
19  * the documentation and/or other materials provided with the
20  * distribution.
21  *
22  * 3. The end-user documentation included with the redistribution,
23  * if any, must include the following acknowledgment:
24  * "This product includes software developed by the
25  * Apache Software Foundation (http://www.apache.org/)."
26  * Alternately, this acknowledgment may appear in the software itself,
27  * if and wherever such third-party acknowledgments normally appear.
28  *
29  * 4. The names "Apache" and "Apache Software Foundation" and
30  * "Apache BCEL" must not be used to endorse or promote products
31  * derived from this software without prior written permission. For
32  * written permission, please contact apache@apache.org.
33  *
34  * 5. Products derived from this software may not be called "Apache",
35  * "Apache BCEL", nor may "Apache" appear in their name, without
36  * prior written permission of the Apache Software Foundation.
37  *
38  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
39  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
42  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
45  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
46  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
47  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
48  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
49  * SUCH DAMAGE.
50  * ====================================================================
51  *
52  * This software consists of voluntary contributions made by many
53  * individuals on behalf of the Apache Software Foundation. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58
59 import com.sun.org.apache.bcel.internal.Constants;
60 import java.io.*;
61
62 /**
63  * This class is derived from the abstract
64  * <A HREF="com.sun.org.apache.bcel.internal.classfile.Constant.html">Constant</A> class
65  * and represents a reference to an int object.
66  *
67  * @version $Id: ConstantInteger.java,v 1.1.1.1 2001/10/29 19:59:59 jvanzyl Exp $
68  * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
69  * @see Constant
70  */

71 public final class ConstantInteger extends Constant implements ConstantObject {
72   private int bytes;
73
74   /**
75    * @param bytes Data
76    */

77   public ConstantInteger(int bytes)
78   {
79     super(Constants.CONSTANT_Integer);
80     this.bytes = bytes;
81   }
82
83   /**
84    * Initialize from another object.
85    */

86   public ConstantInteger(ConstantInteger c) {
87     this(c.getBytes());
88   }
89
90   /**
91    * Initialize instance from file data.
92    *
93    * @param file Input stream
94    * @throw IOException
95    */

96   ConstantInteger(DataInputStream file) throws IOException
97   {
98     this(file.readInt());
99   }
100
101   /**
102    * Called by objects that are traversing the nodes of the tree implicitely
103    * defined by the contents of a Java class. I.e., the hierarchy of methods,
104    * fields, attributes, etc. spawns a tree of objects.
105    *
106    * @param v Visitor object
107    */

108   public void accept(Visitor v) {
109     v.visitConstantInteger(this);
110   }
111
112   /**
113    * Dump constant integer to file stream in binary format.
114    *
115    * @param file Output file stream
116    * @throw IOException
117    */

118   public final void dump(DataOutputStream file) throws IOException
119   {
120     file.writeByte(tag);
121     file.writeInt(bytes);
122   }
123
124   /**
125    * @return data, i.e., 4 bytes.
126    */

127   public final int getBytes() { return bytes; }
128
129   /**
130    * @param bytes.
131    */

132   public final void setBytes(int bytes) {
133     this.bytes = bytes;
134   }
135
136   /**
137    * @return String representation.
138    */

139   public final String JavaDoc toString() {
140     return super.toString() + "(bytes = " + bytes + ")";
141   }
142
143   /** @return Integer object
144    */

145   public Object JavaDoc getConstantValue(ConstantPool cp) {
146     return new Integer JavaDoc(bytes);
147   }
148 }
149
Popular Tags