KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > javacore > parser > PrimitiveTypeRef


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.javacore.parser;
21
22 import java.io.IOException JavaDoc;
23 import java.io.InputStream JavaDoc;
24 import java.io.OutputStream JavaDoc;
25 import java.util.HashMap JavaDoc;
26 import org.netbeans.mdr.storagemodel.StorableBaseObject;
27 import org.netbeans.mdr.util.IOUtils;
28
29 public class PrimitiveTypeRef extends TypeRef {
30     public final String JavaDoc name;
31
32     public static final PrimitiveTypeRef BYTE = new PrimitiveTypeRef("byte"); // NOI18N
33
public static final PrimitiveTypeRef SHORT = new PrimitiveTypeRef("short"); // NOI18N
34
public static final PrimitiveTypeRef INT = new PrimitiveTypeRef("int"); // NOI18N
35
public static final PrimitiveTypeRef LONG = new PrimitiveTypeRef("long"); // NOI18N
36
public static final PrimitiveTypeRef CHAR = new PrimitiveTypeRef("char"); // NOI18N
37
public static final PrimitiveTypeRef FLOAT = new PrimitiveTypeRef("float"); // NOI18N
38
public static final PrimitiveTypeRef DOUBLE = new PrimitiveTypeRef("double"); // NOI18N
39
public static final PrimitiveTypeRef BOOLEAN = new PrimitiveTypeRef("boolean"); // NOI18N
40
public static final PrimitiveTypeRef VOID = new PrimitiveTypeRef("void"); // NOI18N
41

42     private static final HashMap JavaDoc ALL = new HashMap JavaDoc(18);
43     
44     static {
45         ALL.put(new Integer JavaDoc(BYTE.hashCode()), BYTE);
46         ALL.put(new Integer JavaDoc(SHORT.hashCode()), SHORT);
47         ALL.put(new Integer JavaDoc(INT.hashCode()), INT);
48         ALL.put(new Integer JavaDoc(LONG.hashCode()), LONG);
49         ALL.put(new Integer JavaDoc(CHAR.hashCode()), CHAR);
50         ALL.put(new Integer JavaDoc(FLOAT.hashCode()), FLOAT);
51         ALL.put(new Integer JavaDoc(DOUBLE.hashCode()), DOUBLE);
52         ALL.put(new Integer JavaDoc(BOOLEAN.hashCode()), BOOLEAN);
53         ALL.put(new Integer JavaDoc(VOID.hashCode()), VOID);
54     }
55     
56     public static Object JavaDoc read(InputStream JavaDoc stream, StorableBaseObject storable) throws IOException JavaDoc {
57         return ALL.get(new Integer JavaDoc(IOUtils.readInt(stream)));
58     }
59     
60     public void write(OutputStream JavaDoc outputStream, StorableBaseObject storable) throws IOException JavaDoc {
61         IOUtils.writeInt(outputStream, hashCode());
62     }
63     
64     public static PrimitiveTypeRef forName(String JavaDoc name) {
65         return (PrimitiveTypeRef) ALL.get(new Integer JavaDoc(name.hashCode()));
66     }
67     
68     protected PrimitiveTypeRef(String JavaDoc name) {
69         this.name = name;
70     }
71     
72     public boolean equals(Object JavaDoc typeRef) {
73         PrimitiveTypeRef ref;
74         
75         if (this==typeRef)
76             return true;
77         if (!(typeRef instanceof PrimitiveTypeRef))
78             return false;
79         ref=(PrimitiveTypeRef)typeRef;
80         return name.equals(ref.name);
81     }
82     
83     String JavaDoc getName() {
84         return name;
85     }
86     
87     public int hashCode() {
88         return name.hashCode();
89     }
90 }
Popular Tags