/******************************************************************************* | |
* Copyright (c) 2009 by SAP AG, Walldorf. | |
* 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: | |
* SAP AG - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.jst.ws.jaxws.dom.runtime; | |
import java.util.HashMap; | |
import java.util.Map; | |
/** | |
* Utility class used for some general primitive type checks/operations. | |
* | |
* @author Georgi Vachkov | |
* | |
*/ | |
public class PrimitiveTypeHandler | |
{ | |
private static final String ARRAY_MARK = "[]"; //$NON-NLS-1$ | |
private static final String VOID = "void"; //$NON-NLS-1$ | |
private static Map<String, String> primitiveTypes = new HashMap<String, String>(); | |
static | |
{ | |
primitiveTypes.put("boolean", "java.lang.Boolean"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Boolean", "java.lang.Boolean"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("byte", "java.lang.Byte"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Byte", "java.lang.Byte"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("char", "java.lang.Character"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Character", "java.lang.Character"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("double", "java.lang.Double"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Double", "java.lang.Double"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("float", "java.lang.Float"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Float", "java.lang.Float"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("int", "java.lang.Integer"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Integer", "java.lang.Integer"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.String", "java.lang.String"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("long", "java.lang.Long"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Long", "java.lang.Long"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("short", "java.lang.Short"); //$NON-NLS-1$ //$NON-NLS-2$ | |
primitiveTypes.put("java.lang.Short", "java.lang.Short"); //$NON-NLS-1$ //$NON-NLS-2$ | |
} | |
/** | |
* Returns the object type for primitive type. Mapping between types: | |
* | |
* <pre> | |
* "boolean, "java.lang.Boolean" | |
* "java.lang.Boolean", "java.lang.Boolean" | |
* "byte", "java.lang.Byte" | |
* "java.lang.Byte", "java.lang.Byte" | |
* "char", "java.lang.Character" | |
* "java.lang.Character", "java.lang.Character" | |
* "double", "java.lang.Double" | |
* "java.lang.Double", "java.lang.Double" | |
* "float", "java.lang.Float" | |
* "java.lang.Float", "java.lang.Float" | |
* "int", "java.lang.Integer" | |
* "java.lang.Integer", "java.lang.Integer" | |
* "java.lang.String", "java.lang.String" | |
* "long", "java.lang.Long" | |
* "java.lang.Long", "java.lang.Long" | |
* "short", "java.lang.Short" | |
* "java.lang.Short", "java.lang.Short" | |
* </pre> | |
* | |
* @param typeName | |
* @return wrapper class name for <tt>typeName</tt>. | |
*/ | |
public static String getObjectTypeForPrimitiveType(String typeName) | |
{ | |
return primitiveTypes.get(typeName); | |
} | |
/** | |
* @param typeName | |
* @return true if <tt>typeName</tt> is java primitive type. | |
*/ | |
public static boolean isJavaPrimitiveType(String typeName) | |
{ | |
return (primitiveTypes.get(typeName) != null); | |
} | |
/** | |
* Checks if the <tt>typeName</tt> represents an array type. | |
* | |
* @param typeName | |
* @return true if <tt>typeName</tt> is array type | |
*/ | |
public static boolean isArrayType(String typeName) | |
{ | |
return typeName.trim().endsWith(ARRAY_MARK); | |
} | |
/** | |
* Checks if <tt>typeName</tt> is void. | |
* | |
* @param typeName | |
* @return true if <tt>typeName</tt> is void. | |
*/ | |
public static boolean isVoidType(String typeName) | |
{ | |
return typeName.trim().equals(VOID); | |
} | |
/** | |
* Retrieves the real type name from array type. Example: | |
* | |
* <pre> | |
* For type 'int[]' returns 'int' | |
* For type 'String[][]' returns 'String' | |
* </pre> | |
* | |
* @param typeName | |
* @return real type name | |
*/ | |
public static String getTypeFromArrayType(String typeName) | |
{ | |
String name = typeName.trim().replaceAll(" ", ""); //$NON-NLS-1$ //$NON-NLS-2$ | |
while (name.endsWith(ARRAY_MARK)) | |
{ | |
name = name.substring(0, name.length() - ARRAY_MARK.length()); | |
} | |
return name; | |
} | |
} |