@@ -387,7 +387,7 @@ private void handleDomainFunctionMethod(Class<?> domainFunctionsClass, Method me
387
387
388
388
DomainFunctionBuilder function = domainBuilder .createFunction (name );
389
389
390
- ResolvedType resolvedType = resolveType (typeName , elementTypeName , type , elementType , domainFunctionsClass , method , null );
390
+ ResolvedType resolvedType = resolveType (domainBuilder , typeName , elementTypeName , type , elementType , domainFunctionsClass , method , null );
391
391
String resolvedTypeName = null ;
392
392
boolean resolvedCollection = false ;
393
393
if (resolvedType != null ) {
@@ -485,7 +485,7 @@ private void handleDomainFunctionParameter(DomainBuilder domainBuilder, DomainFu
485
485
}
486
486
}
487
487
488
- ResolvedType resolvedType = resolveType (typeName , elementTypeName , type , elementType , domainFunctionsClass , method , parameter );
488
+ ResolvedType resolvedType = resolveType (domainBuilder , typeName , elementTypeName , type , elementType , domainFunctionsClass , method , parameter );
489
489
String resolvedTypeName = null ;
490
490
boolean resolvedCollection ;
491
491
if (resolvedType == null ) {
@@ -722,7 +722,7 @@ private void handleDomainAttributeMethod(DomainBuilder domainBuilder, EntityDoma
722
722
String typeName = domainAttribute .collection () ? "Collection" : domainAttribute .typeName ();
723
723
Class <?> elementType = domainAttribute .collection () ? domainAttribute .value () : void .class ;
724
724
String elementTypeName = domainAttribute .collection () ? domainAttribute .typeName () : "" ;
725
- ResolvedType resolvedType = resolveType (typeName , elementTypeName , type , elementType , domainTypeClass , method , null );
725
+ ResolvedType resolvedType = resolveType (domainBuilder , typeName , elementTypeName , type , elementType , domainTypeClass , method , null );
726
726
if (resolvedType == null ) {
727
727
resolvedType = ResolvedType .basic (Object .class );
728
728
}
@@ -771,7 +771,7 @@ private void handleDomainAttributeMethod(DomainBuilder domainBuilder, EntityDoma
771
771
}
772
772
}
773
773
774
- protected ResolvedType resolveType (String typeName , String elementTypeName , Class <?> type , Class <?> elementType , Class <?> baseClass , Method method , Parameter parameter ) {
774
+ protected ResolvedType resolveType (DomainBuilder domainBuilder , String typeName , String elementTypeName , Class <?> type , Class <?> elementType , Class <?> baseClass , Method method , Parameter parameter ) {
775
775
if (!typeName .isEmpty ()) {
776
776
if ("Collection" .equals (typeName )) {
777
777
if (elementTypeName .isEmpty ()) {
@@ -795,17 +795,17 @@ protected ResolvedType resolveType(String typeName, String elementTypeName, Clas
795
795
} else {
796
796
t = type ;
797
797
}
798
- Object resolvedType = configuredTypeResolver .resolve (baseClass , t );
798
+ Object resolvedType = configuredTypeResolver .resolve (baseClass , t , domainBuilder );
799
799
if (resolvedType == Object .class ) {
800
800
return null ;
801
801
}
802
802
if (resolvedType == null && !(t instanceof Class <?>)) {
803
803
// If the type could not be resolved, we try to resolve to a class type first and then invoke the resolver again
804
804
if (parameter == null ) {
805
- resolvedType = configuredTypeResolver .resolve (baseClass , ReflectionUtils .getResolvedMethodReturnType (baseClass , method ));
805
+ resolvedType = configuredTypeResolver .resolve (baseClass , ReflectionUtils .getResolvedMethodReturnType (baseClass , method ), domainBuilder );
806
806
} else {
807
807
int idx = Arrays .asList (method .getParameters ()).indexOf (parameter );
808
- resolvedType = configuredTypeResolver .resolve (baseClass , ReflectionUtils .getResolvedMethodParameterTypes (baseClass , method )[idx ]);
808
+ resolvedType = configuredTypeResolver .resolve (baseClass , ReflectionUtils .getResolvedMethodParameterTypes (baseClass , method )[idx ], domainBuilder );
809
809
}
810
810
}
811
811
if (resolvedType instanceof String ) {
@@ -849,7 +849,7 @@ protected ResolvedType resolveType(String typeName, String elementTypeName, Clas
849
849
return null ;
850
850
} else if (Collection .class .isAssignableFrom (returnType )) {
851
851
if (configuredTypeResolver != null ) {
852
- Object resolvedType = configuredTypeResolver .resolve (baseClass , elementType );
852
+ Object resolvedType = configuredTypeResolver .resolve (baseClass , elementType , domainBuilder );
853
853
if (resolvedType instanceof String ) {
854
854
return ResolvedType .collection ((String ) resolvedType );
855
855
} else if (resolvedType instanceof Class <?>) {
@@ -859,7 +859,7 @@ protected ResolvedType resolveType(String typeName, String elementTypeName, Clas
859
859
return ResolvedType .collection (elementType );
860
860
} else {
861
861
if (configuredTypeResolver != null ) {
862
- Object resolvedType = configuredTypeResolver .resolve (baseClass , returnType );
862
+ Object resolvedType = configuredTypeResolver .resolve (baseClass , returnType , domainBuilder );
863
863
if (resolvedType instanceof String ) {
864
864
return ResolvedType .basic ((String ) resolvedType );
865
865
} else if (resolvedType instanceof Class <?>) {
0 commit comments