/* * Copyright 2013. Guidewire Software, Inc. */ package gw.lang.reflect.java.asm; import java.util.HashMap; import java.util.Map; /** */ public class AsmPrimitiveType extends AsmType { public static final AsmPrimitiveType BYTE; public static final AsmPrimitiveType SHORT; public static final AsmPrimitiveType CHAR; public static final AsmPrimitiveType INT; public static final AsmPrimitiveType LONG; public static final AsmPrimitiveType FLOAT; public static final AsmPrimitiveType DOUBLE; public static final AsmPrimitiveType BOOLEAN; public static final AsmPrimitiveType VOID; private static final Map<String, AsmPrimitiveType> PRIMITIVES = new HashMap<String, AsmPrimitiveType>(); static { PRIMITIVES.put( "byte", BYTE = new AsmPrimitiveType( "byte" ) ); PRIMITIVES.put( "short", SHORT = new AsmPrimitiveType( "short" ) ); PRIMITIVES.put( "char", CHAR = new AsmPrimitiveType( "char" ) ); PRIMITIVES.put( "int", INT = new AsmPrimitiveType( "int" ) ); PRIMITIVES.put( "long", LONG = new AsmPrimitiveType( "long" ) ); PRIMITIVES.put( "float", FLOAT = new AsmPrimitiveType( "float" ) ); PRIMITIVES.put( "double", DOUBLE = new AsmPrimitiveType( "double" ) ); PRIMITIVES.put( "boolean", BOOLEAN = new AsmPrimitiveType( "boolean" ) ); PRIMITIVES.put( "void", VOID = new AsmPrimitiveType( "void" ) ); PRIMITIVES.put( "B", BYTE ); PRIMITIVES.put( "S", SHORT ); PRIMITIVES.put( "C", CHAR ); PRIMITIVES.put( "I", INT ); PRIMITIVES.put( "J", LONG ); PRIMITIVES.put( "F", FLOAT ); PRIMITIVES.put( "D", DOUBLE ); PRIMITIVES.put( "Z", BOOLEAN ); PRIMITIVES.put( "V", VOID ); } public static AsmPrimitiveType findPrimitive( String name ) { return PRIMITIVES.get( name ); } private AsmPrimitiveType( String name ) { super( name ); } @Override AsmType copy() { return this; } @Override AsmType copyNoArrayOrParameters() { return this; } public boolean isPrimitive() { return true; } @Override public void incArrayDims() { throw new UnsupportedOperationException( "Primitive types are immutable" ); } @Override public void addTypeParameter( AsmType type ) { throw new UnsupportedOperationException( "Primitive types are immutable" ); } @Override public void setName( String name ) { throw new UnsupportedOperationException( "Primitive types are immutable" ); } @Override public void setTypeVariable() { throw new UnsupportedOperationException( "Primitive types are immutable" ); } }