@@ -140,7 +140,6 @@ public static boolean isTypeMap(Type type) {
140140
141141 public static boolean isTypeArray (Type type ) {
142142 return type instanceof GenericArrayType ;
143- // return getRawType(type).isArray();
144143 }
145144
146145 public static boolean isJsonNode (Type type ) {
@@ -230,23 +229,17 @@ else if (Function.class.isAssignableFrom(pojoFunctionClass) || BiFunction.class.
230229
231230 public static Type discoverFunctionTypeFromType (Type functionalType ) {
232231 Type typeToReturn = null ;
232+ ResolvableType functionType ;
233233 if (Function .class .isAssignableFrom (getRawType (functionalType ))) {
234- ResolvableType functionType = ResolvableType .forType (functionalType ).as (Function .class );
235- typeToReturn = GenericTypeResolver .resolveType (functionType .getType (), getRawType (functionalType ));
234+ functionType = ResolvableType .forType (functionalType ).as (Function .class );
236235 }
237236 else if (Consumer .class .isAssignableFrom (getRawType (functionalType ))) {
238- ResolvableType functionType = ResolvableType .forType (functionalType ).as (Consumer .class );
239-
240- ResolvableType t = ResolvableType .forClassWithGenerics (getRawType (functionalType ), functionType .getGeneric (0 ));
241- Type t2 = t .getType ();
242- //Type t = ResolvableType.
243-
244- typeToReturn = GenericTypeResolver .resolveType (functionType .getType (), functionType .getRawClass ());
237+ functionType = ResolvableType .forType (functionalType ).as (Consumer .class );
245238 }
246239 else {
247- ResolvableType functionType = ResolvableType .forType (functionalType ).as (Supplier .class );
248- typeToReturn = GenericTypeResolver .resolveType (functionType .getType (), getRawType (functionalType ));
240+ functionType = ResolvableType .forType (functionalType ).as (Supplier .class );
249241 }
242+ typeToReturn = resolveType (functionType );
250243 return typeToReturn ;
251244 }
252245
@@ -261,27 +254,7 @@ else if (Function0.class.isAssignableFrom(functionalClass)) {
261254 return GenericTypeResolver .resolveType (kotlinType .getType (), functionalClass );
262255 }
263256 }
264- Type typeToReturn = null ;
265- if (Function .class .isAssignableFrom (functionalClass )) {
266- for (Type superInterface : functionalClass .getGenericInterfaces ()) {
267- if (superInterface != null && !superInterface .equals (Object .class )) {
268- if (superInterface .toString ().contains ("KStream" ) && ResolvableType .forType (superInterface ).getGeneric (1 ).isArray ()) {
269- return null ;
270- }
271- }
272- }
273- ResolvableType functionType = ResolvableType .forType (functionalClass ).as (Function .class );
274- typeToReturn = GenericTypeResolver .resolveType (functionType .getType (), functionalClass );
275- }
276- else if (Consumer .class .isAssignableFrom (functionalClass )) {
277- ResolvableType functionType = ResolvableType .forType (functionalClass ).as (Consumer .class );
278- typeToReturn = GenericTypeResolver .resolveType (functionType .getType (), functionalClass );
279- }
280- else if (Supplier .class .isAssignableFrom (functionalClass )) {
281- ResolvableType functionType = ResolvableType .forType (functionalClass ).as (Supplier .class );
282- typeToReturn = GenericTypeResolver .resolveType (functionType .getType (), functionalClass );
283- }
284- return typeToReturn ;
257+ return discoverFunctionTypeFromType (functionalClass );
285258 }
286259
287260 /**
@@ -307,7 +280,6 @@ public static Type discoverFunctionTypeFromFunctionFactoryMethod(Class<?> clazz,
307280 */
308281 public static Type discoverFunctionTypeFromFunctionFactoryMethod (Method method ) {
309282 return method .getGenericReturnType ();
310- // return discoverFunctionTypeFromClass(method.getReturnType());
311283 }
312284
313285 /**
@@ -394,8 +366,8 @@ public static Type getComponentTypeOfInputType(Type functionType) {
394366 * @return generic type or output type
395367 */
396368 public static Type getComponentTypeOfOutputType (Type functionType ) {
397- Type inputType = getOutputType (functionType );
398- return getImmediateGenericType (inputType , 0 );
369+ Type outputType = getOutputType (functionType );
370+ return getImmediateGenericType (outputType , 0 );
399371 }
400372
401373 /**
0 commit comments