73 lines
2.3 KiB
Java
73 lines
2.3 KiB
Java
/******************************************************************************
|
|
* Copyright (c) 2002 - 2006 IBM Corporation.
|
|
* All rights reserved. This program and the accompanying materials
|
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
* which accompanies this distribution, and is available at
|
|
* http://www.eclipse.org/legal/epl-v10.html
|
|
*
|
|
* Contributors:
|
|
* IBM Corporation - initial API and implementation
|
|
*****************************************************************************/
|
|
/*
|
|
* Created on Sep 28, 2005
|
|
*/
|
|
package com.ibm.wala.cast.java.types;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Collections;
|
|
import java.util.Map;
|
|
|
|
import com.ibm.wala.cast.tree.CAstType;
|
|
import com.ibm.wala.util.collections.HashMapFactory;
|
|
|
|
public class JavaPrimitiveTypeMap {
|
|
public static final Map<String, JavaPrimitiveType> primNameMap = HashMapFactory.make();
|
|
|
|
public static class JavaPrimitiveType implements CAstType.Primitive {
|
|
String fLongName;
|
|
|
|
String fShortName;
|
|
|
|
private JavaPrimitiveType(String longName, String shortName) {
|
|
fLongName = longName;
|
|
fShortName = shortName;
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return fShortName;
|
|
}
|
|
|
|
public String getLongName() {
|
|
return fLongName;
|
|
}
|
|
|
|
@Override
|
|
public Collection getSupertypes() {
|
|
return Collections.EMPTY_LIST;
|
|
}
|
|
}
|
|
|
|
public static String getShortName(String longName) {
|
|
return ((JavaPrimitiveType) primNameMap.get(longName)).getName();
|
|
}
|
|
|
|
public static JavaPrimitiveType lookupType(String longName) {
|
|
return (JavaPrimitiveType) primNameMap.get(longName);
|
|
}
|
|
|
|
public static final JavaPrimitiveType VoidType = new JavaPrimitiveType("void", "V");
|
|
|
|
static {
|
|
primNameMap.put("int", new JavaPrimitiveType("int", "I"));
|
|
primNameMap.put("long", new JavaPrimitiveType("long", "J"));
|
|
primNameMap.put("short", new JavaPrimitiveType("short", "S"));
|
|
primNameMap.put("char", new JavaPrimitiveType("char", "C"));
|
|
primNameMap.put("byte", new JavaPrimitiveType("byte", "B"));
|
|
primNameMap.put("boolean", new JavaPrimitiveType("boolean", "Z"));
|
|
primNameMap.put("float", new JavaPrimitiveType("float", "F"));
|
|
primNameMap.put("double", new JavaPrimitiveType("double", "D"));
|
|
primNameMap.put("void", VoidType);
|
|
}
|
|
}
|