Skip to content

Commit 93777e2

Browse files
committed
fix enum setId failure
1 parent 4cfe3d5 commit 93777e2

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>in.kuros</groupId>
1414
<artifactId>jFirebase</artifactId>
15-
<version>0.6.13</version>
15+
<version>0.6.14</version>
1616

1717

1818
<description>This project aims at building a wrapper over nosql technologies - Firebase</description>

src/main/java/in/kuros/jfirebase/util/BeanMapper.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ public Map<String, Object> serialize(T object) {
235235
return result;
236236
}
237237

238+
@SuppressWarnings({"unchecked", "rawtypes"})
238239
public void setValue(final T object, final String propertyName, Object value) {
239240

240241
if (setters.containsKey(propertyName) && !propertyName.equals(createTime) && !propertyName.equals(updateTime)) {
@@ -243,8 +244,12 @@ public void setValue(final T object, final String propertyName, Object value) {
243244
if (params.length != 1) {
244245
throw new EntityDeclarationException("Setter does not have exactly one parameter");
245246
}
247+
248+
final Class paramClass = (Class) params[0];
249+
final Object parsedValue = paramClass.isEnum() ? Enum.valueOf(paramClass, value.toString()) : value;
250+
246251
try {
247-
setter.invoke(object, value);
252+
setter.invoke(object, parsedValue);
248253
} catch (IllegalAccessException | InvocationTargetException e) {
249254
throw new RuntimeException(e);
250255
}

0 commit comments

Comments
 (0)