Fixed ReflectiveElementValuePair for Enum values.
--- 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;