You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2019/09/28 15:21:52 UTC
[johnzon] branch master updated: JOHNZON-282 harnessing
ParameterizedType usage for library handling of readers
This is an automated email from the ASF dual-hosted git repository.
rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push:
new b18c183 JOHNZON-282 harnessing ParameterizedType usage for library handling of readers
b18c183 is described below
commit b18c183bd430a8da6b15435114240a8259ca1021
Author: Romain Manni-Bucau <rm...@apache.org>
AuthorDate: Sat Sep 28 17:21:43 2019 +0200
JOHNZON-282 harnessing ParameterizedType usage for library handling of readers
---
.../java/org/apache/johnzon/jsonb/JsonbAccessMode.java | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java
index 7f6ddaa..4d19dff 100644
--- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java
+++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java
@@ -1038,17 +1038,17 @@ public class JsonbAccessMode implements AccessMode, Closeable {
}
private boolean hasRawType(final Type type) {
- return Class.class.isInstance(type) || ParameterizedType.class.isInstance(type);
+ return Class.class.isInstance(type) ||
+ (ParameterizedType.class.isInstance(type) &&
+ Class.class.isInstance(ParameterizedType.class.cast(type).getRawType()));
}
- private Class<?> getRawType(final Type type) {
- if (!Class.class.isInstance(type) && !ParameterizedType.class.isInstance(type)) {
- throw new IllegalStateException("Unsupported generic type " + type.getClass().getName());
- } else if (Class.class.isInstance(type)) {
+ private Class<?> getRawType(final Type type) { // only intended to be used after hasRawType check
+ if (Class.class.isInstance(type)) {
return Class.class.cast(type);
- } else /*if (ParameterizedType.class.isInstance(type))*/ {
- return Class.class.cast(ParameterizedType.class.cast(type).getRawType());
}
+ // ParameterizedType + Class raw type
+ return Class.class.cast(ParameterizedType.class.cast(type).getRawType());
}
private static class ClassDecoratedType implements DecoratedType {