[SPR-5644] Support for Enum<?> and Enum<T> values as FQN.FIELD_NAME in type conversion

This commit is contained in:
Rob Harrop
2009-09-11 18:31:51 +00:00
parent f7562614bc
commit 1480202aa3
2 changed files with 91 additions and 12 deletions

View File

@@ -1462,6 +1462,21 @@ public final class BeanWrapperTests {
}
}
@Test
public void testGenericEnum() {
EnumConsumer consumer = new EnumConsumer();
BeanWrapper bw = new BeanWrapperImpl(consumer);
bw.setPropertyValue("enumValue", TestEnum.class.getName() + ".TEST_VALUE");
assertEquals(TestEnum.TEST_VALUE, consumer.getEnumValue());
}
@Test
public void testWildcardedGenericEnum() {
WildcardEnumConsumer consumer = new WildcardEnumConsumer();
BeanWrapper bw = new BeanWrapperImpl(consumer);
bw.setPropertyValue("enumValue", TestEnum.class.getName() + ".TEST_VALUE");
assertEquals(TestEnum.TEST_VALUE, consumer.getEnumValue());
}
private static class DifferentTestBean extends TestBean {
// class to test naming of beans in a BeanWrapper error message
@@ -1747,4 +1762,32 @@ public final class BeanWrapperTests {
}
}
public static class EnumConsumer {
private Enum<TestEnum> enumValue;
public Enum<TestEnum> getEnumValue() {
return enumValue;
}
public void setEnumValue(Enum<TestEnum> enumValue) {
this.enumValue = enumValue;
}
}
public static class WildcardEnumConsumer {
private Enum<?> enumValue;
public Enum<?> getEnumValue() {
return enumValue;
}
public void setEnumValue(Enum<?> enumValue) {
this.enumValue = enumValue;
}
}
public enum TestEnum {
TEST_VALUE
}
}