1 19 20 package org.netbeans.modules.javacore.parser; 21 22 import java.io.IOException ; 23 import java.io.InputStream ; 24 import java.io.OutputStream ; 25 import java.util.HashMap ; 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 name; 31 32 public static final PrimitiveTypeRef BYTE = new PrimitiveTypeRef("byte"); public static final PrimitiveTypeRef SHORT = new PrimitiveTypeRef("short"); public static final PrimitiveTypeRef INT = new PrimitiveTypeRef("int"); public static final PrimitiveTypeRef LONG = new PrimitiveTypeRef("long"); public static final PrimitiveTypeRef CHAR = new PrimitiveTypeRef("char"); public static final PrimitiveTypeRef FLOAT = new PrimitiveTypeRef("float"); public static final PrimitiveTypeRef DOUBLE = new PrimitiveTypeRef("double"); public static final PrimitiveTypeRef BOOLEAN = new PrimitiveTypeRef("boolean"); public static final PrimitiveTypeRef VOID = new PrimitiveTypeRef("void"); 42 private static final HashMap ALL = new HashMap (18); 43 44 static { 45 ALL.put(new Integer (BYTE.hashCode()), BYTE); 46 ALL.put(new Integer (SHORT.hashCode()), SHORT); 47 ALL.put(new Integer (INT.hashCode()), INT); 48 ALL.put(new Integer (LONG.hashCode()), LONG); 49 ALL.put(new Integer (CHAR.hashCode()), CHAR); 50 ALL.put(new Integer (FLOAT.hashCode()), FLOAT); 51 ALL.put(new Integer (DOUBLE.hashCode()), DOUBLE); 52 ALL.put(new Integer (BOOLEAN.hashCode()), BOOLEAN); 53 ALL.put(new Integer (VOID.hashCode()), VOID); 54 } 55 56 public static Object read(InputStream stream, StorableBaseObject storable) throws IOException { 57 return ALL.get(new Integer (IOUtils.readInt(stream))); 58 } 59 60 public void write(OutputStream outputStream, StorableBaseObject storable) throws IOException { 61 IOUtils.writeInt(outputStream, hashCode()); 62 } 63 64 public static PrimitiveTypeRef forName(String name) { 65 return (PrimitiveTypeRef) ALL.get(new Integer (name.hashCode())); 66 } 67 68 protected PrimitiveTypeRef(String name) { 69 this.name = name; 70 } 71 72 public boolean equals(Object 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 getName() { 84 return name; 85 } 86 87 public int hashCode() { 88 return name.hashCode(); 89 } 90 } | Popular Tags |