KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > jdo > api > persistence > enhancer > classfile > ConstantValueAttribute


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the License). You may not use this file except in
5  * compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * https://glassfish.dev.java.net/public/CDDLv1.0.html or
9  * glassfish/bootstrap/legal/CDDLv1.0.txt.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * Header Notice in each file and include the License file
15  * at glassfish/bootstrap/legal/CDDLv1.0.txt.
16  * If applicable, add the following below the CDDL Header,
17  * with the fields enclosed by brackets [] replaced by
18  * you own identifying information:
19  * "Portions Copyrighted [year] [name of copyright owner]"
20  *
21  * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
22  */

23
24
25 package com.sun.jdo.api.persistence.enhancer.classfile;
26
27 import java.io.*;
28
29 /**
30  * ConstantValueAttribute represents a constant value attribute
31  * in a class file. These attributes are used as initialization
32  * values for static fields.
33  */

34
35 public class ConstantValueAttribute extends ClassAttribute {
36   /* The expected name of this attribute */
37     public static final String JavaDoc expectedAttrName = "ConstantValue";//NOI18N
38

39   /* The value */
40   private ConstValue constantValue;
41
42   /* public accessors */
43
44   public ConstValue value() {
45     return constantValue;
46   }
47
48   /**
49    * Construct a constant value attribute
50    */

51   public ConstantValueAttribute(ConstUtf8 attrName, ConstValue value) {
52     super(attrName);
53     constantValue = value;
54   }
55
56   /* package local methods */
57
58   static ConstantValueAttribute read (ConstUtf8 attrName,
59                              DataInputStream data, ConstantPool pool)
60     throws IOException {
61     int index = 0;
62     index = data.readUnsignedShort();
63
64     return new ConstantValueAttribute(attrName,
65                  (ConstValue) pool.constantAt(index));
66   }
67
68   void write(DataOutputStream out) throws IOException {
69     out.writeShort(attrName().getIndex());
70     out.writeInt(2);
71     out.writeShort(constantValue.getIndex());
72   }
73
74   void print(PrintStream out, int indent) {
75     ClassPrint.spaces(out, indent);
76     out.println("ConstantValue: " + constantValue.toString());//NOI18N
77
}
78 }
79
80
Popular Tags