Fixed ReflectiveElementValuePair for Enum values.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 13 Nov 2014 00:35:05 +0100
changeset 3273 31b5a49df0e0
parent 3272 7a2b5c67bc0f
child 3274 a19f06fa6f09
Fixed ReflectiveElementValuePair for Enum values.
tools/java/src/stx/libjava/tools/environment/ReflectiveElementValuePair.java
--- a/tools/java/src/stx/libjava/tools/environment/ReflectiveElementValuePair.java	Thu Nov 13 00:25:54 2014 +0100
+++ b/tools/java/src/stx/libjava/tools/environment/ReflectiveElementValuePair.java	Thu Nov 13 00:35:05 2014 +0100
@@ -37,6 +37,8 @@
 		if (value instanceof Annotation) return new ReflectiveAnnotation((Annotation) value);	
 		// * Return {@link ClassSignature} for a Class {@link java.lang.Class}.
 		if (value instanceof Class) return new ClassSignature(((Class<?>)value).getName().toCharArray());
+		// * Return {@link EnumConstantSignature} if value is an enum constant.
+		if (value instanceof EnumConstantSignature) return value;	
 		
 		Class<?> type = value.getClass();
 		
@@ -51,9 +53,7 @@
 		if (type == Character.TYPE) return CharConstant.fromValue((Character) value);
 		if (type == String.class) return StringConstant.fromValue((String) value);
 				
-		// * Return {@link EnumConstantSignature} if value is an enum constant.
-		if (type.isEnum()) return new EnumConstantSignature(type.getName().toCharArray(), ((Enum<?>)value).name().toCharArray());		
-		
+			
 		// * Return {@link Object}[] for array type.
 		if (type.isArray()) return value;