@@ -167,15 +167,17 @@ private static boolean isInjectedByDefault(TypedElementInfo modelBldMethod) {
167167 return false ;
168168 }
169169
170- void addArrayProperty (String propName , TypeName propType , TypedElementInfo modelBldMethod ) {
170+ void addArrayProperty (String propName , TypeName propType , TypedElementInfo modelBldMethod , boolean skipBuilderMapping ) {
171171 var methodBuilder = createMethodBuilder (modelBldMethod )
172172 .name (propName );
173173
174174 methodBuilder .addAnnotation (BLDR_SINGULAR_ANNOTATION );
175175
176176 methodBuilder .returnType (TypeName .builder (LIST ).addTypeArgument (propType ).build ());
177177
178- confMethodBuilder .configureProperty (propName , propType , false , true , false );
178+ if (!skipBuilderMapping ) {
179+ confMethodBuilder .configureProperty (propName , propType , false , true , false );
180+ }
179181
180182 if (overrideProps .containsKey (propName )) {
181183 confMethodBuilder .commentOverriddenProperty (overrideProps .get (propName ));
@@ -184,8 +186,7 @@ void addArrayProperty(String propName, TypeName propType, TypedElementInfo model
184186 }
185187 }
186188
187- void addOptionalProperty (String propName , TypeName propType , TypedElementInfo modelBldMethod ) {
188- var custBuilderMappingAnnotation = modelBldMethod .findAnnotation (LangchainTypes .MODEL_CUSTOM_BUILDER_MAPPING );
189+ void addOptionalProperty (String propName , TypeName propType , TypedElementInfo modelBldMethod , boolean skipBuilderMapping ) {
189190 var methodBuilder = createMethodBuilder (modelBldMethod )
190191 .name (propName );
191192
@@ -198,20 +199,21 @@ void addOptionalProperty(String propName, TypeName propType, TypedElementInfo mo
198199
199200 if (overrideProps .containsKey (propName )) {
200201 confMethodBuilder .commentOverriddenProperty (overrideProps .get (propName ));
201- confMethodBuilder .configureProperty (propName , propType , false , false ,
202- // Overridden non-optional props are kept mandatory
203- overrideProps .get (propName ).typeName ().isOptional ());
202+ if (!skipBuilderMapping ) {
203+ confMethodBuilder .configureProperty (propName , propType , false , false ,
204+ // Overridden non-optional props are kept mandatory
205+ overrideProps .get (propName ).typeName ().isOptional ());
206+ }
204207
205208 } else {
206209 classModelBuilder ().addMethod (methodBuilder .build ());
207- if (custBuilderMappingAnnotation . isEmpty () ) {
210+ if (! skipBuilderMapping ) {
208211 confMethodBuilder .configureProperty (propName , propType , false , false , true );
209212 }
210213 }
211214 }
212215
213- void addCollectionProperty (String propName , TypeName propType , TypedElementInfo modelBldMethod ) {
214- var custBuilderMappingAnnotation = modelBldMethod .findAnnotation (LangchainTypes .MODEL_CUSTOM_BUILDER_MAPPING );
216+ void addCollectionProperty (String propName , TypeName propType , TypedElementInfo modelBldMethod , boolean skipBuilderMapping ) {
215217 var methodBuilder = createMethodBuilder (modelBldMethod )
216218 .name (propName );
217219
@@ -222,7 +224,7 @@ void addCollectionProperty(String propName, TypeName propType, TypedElementInfo
222224 .type (propType )
223225 .build ());
224226
225- if (custBuilderMappingAnnotation . isEmpty () ) {
227+ if (! skipBuilderMapping ) {
226228 confMethodBuilder .configureProperty (propName , propType , false , false , false );
227229 }
228230
@@ -363,15 +365,16 @@ IntrospectionBlueprintBuilder introspectBuilder(List<String> skips, Set<String>
363365 for (var m : propertyMap .values ()) {
364366 var methodName = m .signature ().name ();
365367 var paramType = m .signature ().parameterTypes ().getFirst ();
368+ var skipBuilderMapping = m .findAnnotation (LangchainTypes .MODEL_CUSTOM_BUILDER_MAPPING ).isPresent ();
366369
367370 if (paramType .array () && !hasCollectionAlternative (m , propertyList )) {
368- this .addArrayProperty (methodName , paramType , m );
371+ this .addArrayProperty (methodName , paramType , m , skipBuilderMapping );
369372
370373 } else if (paramType .isList () || paramType .isSet () || paramType .isMap ()) {
371- this .addCollectionProperty (methodName , paramType , m );
374+ this .addCollectionProperty (methodName , paramType , m , skipBuilderMapping );
372375
373376 } else {
374- this .addOptionalProperty (methodName , paramType , m );
377+ this .addOptionalProperty (methodName , paramType , m , skipBuilderMapping );
375378
376379 }
377380 }
@@ -404,13 +407,13 @@ private void introspectOverrides() {
404407 } else {
405408
406409 if (propertyType .array () && !hasCollectionAlternative (m , new ArrayList <>(overrideProps .values ()))) {
407- this .addArrayProperty (propertyName , propertyType , m );
410+ this .addArrayProperty (propertyName , propertyType , m , skipBuilderMapping );
408411
409412 } else if (propertyType .isList () || propertyType .isSet () || propertyType .isMap ()) {
410- this .addCollectionProperty (propertyName , propertyType , m );
413+ this .addCollectionProperty (propertyName , propertyType , m , skipBuilderMapping );
411414
412415 } else {
413- this .addOptionalProperty (propertyName , propertyType , m );
416+ this .addOptionalProperty (propertyName , propertyType , m , skipBuilderMapping );
414417
415418 }
416419 }
0 commit comments