Package org.openjdk.jmc.common.util
Class TypeHandling
- java.lang.Object
-
- org.openjdk.jmc.common.util.TypeHandling
-
public final class TypeHandling extends java.lang.Object
Helper class to provide some formatting of type names.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
DOUBLE_NAN
private static java.lang.String
DOUBLE_NEGATIVE_INFINITY
private static java.lang.String
FLOAT_NAN
private static java.lang.String
FLOAT_NEGATIVE_INFINITY
private static java.util.HashMap<java.lang.String,java.lang.String>
formalPrimitiveMap
private static java.lang.String
INTEGER_MIN_VALUE
private static java.lang.String
LONG_MIN_VALUE
private static java.util.HashMap<java.lang.String,java.lang.Class<?>>
primitiveNameToClassMap
private static java.util.HashMap<java.lang.Class<?>,java.lang.Class<?>>
primitiveToObjectClassMap
private static java.lang.String
VALUE_COMPOSITE_DATA
private static java.lang.String
VALUE_TABULAR_DATA
-
Constructor Summary
Constructors Modifier Constructor Description private
TypeHandling()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> T
cast(java.lang.Object o, java.lang.Class<T> type)
Check if an object is of a specified type and cast it to that if possible.private static java.lang.String
createSizeString(java.lang.String typeName, int size)
static java.lang.Class<?>
getClassWithName(java.lang.String name)
Return the class object for given type name.static java.lang.String
getNumericString(java.lang.Number value)
Check for missing values, and return the numeric value in string format.static java.lang.String
getValueString(java.lang.Object value)
Returns the value in possible augmented way.static java.lang.String
getVerboseString(java.lang.Object value)
Returns a possibly more verbose description of an object.private static boolean
isMaxTimespan(java.lang.Object value)
private static boolean
isMinTimespan(java.lang.Object value)
static boolean
isPrimitive(java.lang.String className)
Check if a class name represents a primitive type or not.static java.lang.String
simplifyType(java.lang.String typeName)
Returns a simplified description of a type name.static java.lang.Class<?>
toNonPrimitiveClass(java.lang.Class<?> primitiveClass)
Return the non-primitive class corresponding to argument class (int -> Integer).
-
-
-
Field Detail
-
formalPrimitiveMap
private static final java.util.HashMap<java.lang.String,java.lang.String> formalPrimitiveMap
-
VALUE_COMPOSITE_DATA
private static final java.lang.String VALUE_COMPOSITE_DATA
- See Also:
- Constant Field Values
-
VALUE_TABULAR_DATA
private static final java.lang.String VALUE_TABULAR_DATA
- See Also:
- Constant Field Values
-
DOUBLE_NAN
private static final java.lang.String DOUBLE_NAN
- See Also:
- Constant Field Values
-
DOUBLE_NEGATIVE_INFINITY
private static final java.lang.String DOUBLE_NEGATIVE_INFINITY
- See Also:
- Constant Field Values
-
FLOAT_NAN
private static final java.lang.String FLOAT_NAN
- See Also:
- Constant Field Values
-
FLOAT_NEGATIVE_INFINITY
private static final java.lang.String FLOAT_NEGATIVE_INFINITY
- See Also:
- Constant Field Values
-
INTEGER_MIN_VALUE
private static final java.lang.String INTEGER_MIN_VALUE
- See Also:
- Constant Field Values
-
LONG_MIN_VALUE
private static final java.lang.String LONG_MIN_VALUE
- See Also:
- Constant Field Values
-
primitiveNameToClassMap
private static java.util.HashMap<java.lang.String,java.lang.Class<?>> primitiveNameToClassMap
-
primitiveToObjectClassMap
private static java.util.HashMap<java.lang.Class<?>,java.lang.Class<?>> primitiveToObjectClassMap
-
-
Method Detail
-
simplifyType
public static java.lang.String simplifyType(java.lang.String typeName)
Returns a simplified description of a type name. This involves transforming type names from their formal descriptors to more human friendly forms, removing package names from certain well-known classes, transforming formal array specified to square brackets etc.- Parameters:
typeName
- a type name- Returns:
- a simplified description of the type name
-
createSizeString
private static java.lang.String createSizeString(java.lang.String typeName, int size)
-
getValueString
public static java.lang.String getValueString(java.lang.Object value)
Returns the value in possible augmented way. It could be viewed as an override of toString().- Parameters:
value
- the value to textualize- Returns:
- the value as a string
-
getVerboseString
public static java.lang.String getVerboseString(java.lang.Object value)
Returns a possibly more verbose description of an object. This is similar togetValueString(Object)
, but can return longer texts.- Parameters:
value
- the value to textualize- Returns:
- the value as a string
-
isMinTimespan
private static boolean isMinTimespan(java.lang.Object value)
-
isMaxTimespan
private static boolean isMaxTimespan(java.lang.Object value)
-
getNumericString
public static java.lang.String getNumericString(java.lang.Number value)
Check for missing values, and return the numeric value in string format.JMC-6256: JMC doesn't respect Long.MIN_VALUE as a missing value.
As per the bug report, the following values should be considered "missing"
- Integer.MIN_VALUE
- Long.MIN_VALUE
- Double.NaN
- Double.NEGATIVE_INFINITY
- Float.NaN
- Float.NEGATIVE_INFINITY
- Parameters:
value
- the numeric value to be converted to a string- Returns:
- a string with the numeric value, or a N/A message
-
getClassWithName
public static java.lang.Class<?> getClassWithName(java.lang.String name) throws java.lang.ClassNotFoundException
Return the class object for given type name.- Parameters:
name
- the name of the type- Returns:
- the class object of the type
- Throws:
java.lang.ClassNotFoundException
- if name is an invalid class name
-
toNonPrimitiveClass
public static java.lang.Class<?> toNonPrimitiveClass(java.lang.Class<?> primitiveClass)
Return the non-primitive class corresponding to argument class (int -> Integer).- Parameters:
primitiveClass
- the class to convert- Returns:
- the non-primitive class or the argument class if non-primitive
-
isPrimitive
public static boolean isPrimitive(java.lang.String className)
Check if a class name represents a primitive type or not.- Parameters:
className
- the name to check- Returns:
true
if the class name represents a primitive type,false
otherwise
-
cast
public static <T> T cast(java.lang.Object o, java.lang.Class<T> type)
Check if an object is of a specified type and cast it to that if possible.- Parameters:
o
- object to casttype
- type to cast the object to- Returns:
- the object cast to the specified type if possible,
null
if not
-
-