@@ -50,18 +50,18 @@ import software.amazon.smithy.rust.codegen.traits.ValidationFieldMessageTrait
5050import software.amazon.smithy.rust.codegen.traits.ValidationFieldNameTrait
5151
5252/* *
53- * Decorator for custom validation exception codegen
53+ * Decorator for user provided validation exception codegen
5454 *
5555 * The order of this is less than that of [SmithyValidationExceptionDecorator] so it takes precedence regardless of the
5656 * order decorators are passed into the plugin
5757 */
5858class UserProvidedValidationExceptionDecorator : ServerCodegenDecorator {
5959 override val name: String
60- get() = " CustomValidationExceptionDecorator "
60+ get() = " UserProvidedValidationExceptionDecorator "
6161 override val order: Byte
6262 get() = 68
6363
64- internal fun customValidationException (codegenContext : ServerCodegenContext ): StructureShape ? =
64+ internal fun userProvidedValidationException (codegenContext : ServerCodegenContext ): StructureShape ? =
6565 codegenContext.model
6666 .shapes(StructureShape ::class .java)
6767 .filter { it.hasTrait(ValidationExceptionTrait .ID ) }
@@ -71,7 +71,7 @@ class UserProvidedValidationExceptionDecorator : ServerCodegenDecorator {
7171 override fun validationExceptionConversion (
7272 codegenContext : ServerCodegenContext ,
7373 ): ValidationExceptionConversionGenerator ? {
74- val validationException = customValidationException (codegenContext) ? : return null
74+ val validationException = userProvidedValidationException (codegenContext) ? : return null
7575
7676 return UserProvidedValidationExceptionConversionGenerator (codegenContext, validationException)
7777 }
@@ -81,35 +81,35 @@ class UserProvidedValidationExceptionConversionGenerator(
8181 private val codegenContext : ServerCodegenContext ,
8282 private val validationException : StructureShape ,
8383) : ValidationExceptionConversionGenerator {
84- private val maybeValidationField = customValidationField ()
84+ private val maybeValidationField = userProvidedValidationField ()
8585
8686 private val codegenCtx =
8787 listOfNotNull(maybeValidationField)
8888 .map {
89- " CustomValidationExceptionField " to codegenContext.symbolProvider.toSymbol(it)
89+ " UserProvidedValidationExceptionField " to codegenContext.symbolProvider.toSymbol(it)
9090 }.toTypedArray()
9191
9292 companion object {
93- val SHAPE_ID : ShapeId = ShapeId .from(" smithy.framework#CustomValidationException " )
93+ val SHAPE_ID : ShapeId = ShapeId .from(" smithy.framework#UserProvidedValidationException " )
9494 }
9595
9696 override val shapeId: ShapeId = SHAPE_ID
9797
98- internal fun customValidationMessage (): MemberShape =
98+ internal fun userProvidedValidationMessage (): MemberShape =
9999 validationException
100100 .members()
101101 .firstOrNull { it.isValidationMessage() }
102102 ? : throw CodegenException (" Expected $validationException to contain a member with ValidationMessageTrait" )
103103
104- internal fun customValidationFieldList (): MemberShape ? =
104+ internal fun userProvidedValidationFieldList (): MemberShape ? =
105105 validationException
106106 .members()
107107 .firstOrNull { it.hasTrait(ValidationFieldListTrait .ID ) }
108108
109- internal fun customValidationField (): StructureShape ? {
110- val validationFieldListMember = customValidationFieldList () ? : return null
109+ internal fun userProvidedValidationField (): StructureShape ? {
110+ val validationFieldListMember = userProvidedValidationFieldList () ? : return null
111111
112- // get target of member of the custom validation field list that represents the structure for the
112+ // get target of member of the user provided validation field list that represents the structure for the
113113 // validation field shape, otherwise, we return null as field list is optional
114114 val validationFieldShape =
115115 validationFieldListMember
@@ -121,7 +121,7 @@ class UserProvidedValidationExceptionConversionGenerator(
121121 ?.orElse(null )
122122 ? : return null
123123
124- // It is required that a member of the custom validation field structure has @validationFieldName
124+ // It is required that a member of the user provided validation field structure has @validationFieldName
125125 if (validationFieldShape
126126 .members()
127127 .none { it.hasTrait(ValidationFieldNameTrait .ID ) }
@@ -132,26 +132,26 @@ class UserProvidedValidationExceptionConversionGenerator(
132132 return validationFieldShape
133133 }
134134
135- internal fun customValidationFieldMessage (): MemberShape ? {
136- val validationField = customValidationField () ? : return null
135+ internal fun userProvidedValidationFieldMessage (): MemberShape ? {
136+ val validationField = userProvidedValidationField () ? : return null
137137
138138 return validationField.members().firstOrNull { it.hasTrait(ValidationFieldMessageTrait .ID ) }
139139 }
140140
141- internal fun customValidationAdditionalFields (): List <MemberShape > =
141+ internal fun userProvidedValidationAdditionalFields (): List <MemberShape > =
142142 validationException.members().filter { member ->
143143 ! member.isValidationMessage() && ! member.hasTrait(ValidationFieldListTrait .ID )
144144 }
145145
146146 override fun renderImplFromConstraintViolationForRequestRejection (protocol : ServerProtocol ): Writable {
147- val validationMessage = customValidationMessage ()
148- val validationFieldList = customValidationFieldList ()
149- val validationFieldMessage = customValidationFieldMessage ()
150- val additionalFields = customValidationAdditionalFields ()
147+ val validationMessage = userProvidedValidationMessage ()
148+ val validationFieldList = userProvidedValidationFieldList ()
149+ val validationFieldMessage = userProvidedValidationFieldMessage ()
150+ val additionalFields = userProvidedValidationAdditionalFields ()
151151
152152 return writable {
153153 val validationMessageName = codegenContext.symbolProvider.toMemberName(validationMessage)!!
154- // Generate the correct shape module name for the custom validation exception
154+ // Generate the correct shape module name for the user provided validation exception
155155 val shapeModuleName =
156156 codegenContext.symbolProvider.shapeModuleName(codegenContext.serviceShape, validationException)
157157 val shapeFunctionName = validationException.id.name.toSnakeCase()
@@ -161,7 +161,7 @@ class UserProvidedValidationExceptionConversionGenerator(
161161 impl #{From}<ConstraintViolation> for #{RequestRejection} {
162162 fn from(constraint_violation: ConstraintViolation) -> Self {
163163 #{FieldCreation}
164- let validation_exception = #{CustomValidationException } {
164+ let validation_exception = #{UserProvidedValidationException } {
165165 $validationMessageName : #{ValidationMessage},
166166 #{FieldListAssignment}
167167 #{AdditionalFieldAssignments}
@@ -175,7 +175,7 @@ class UserProvidedValidationExceptionConversionGenerator(
175175 """ ,
176176 * preludeScope,
177177 " RequestRejection" to protocol.requestRejection(codegenContext.runtimeConfig),
178- " CustomValidationException " to codegenContext.symbolProvider.toSymbol(validationException),
178+ " UserProvidedValidationException " to codegenContext.symbolProvider.toSymbol(validationException),
179179 " FieldCreation" to
180180 writable {
181181 if (validationFieldList != null ) {
@@ -231,11 +231,11 @@ class UserProvidedValidationExceptionConversionGenerator(
231231 val validationField = maybeValidationField ? : return writable { }
232232
233233 return writable {
234- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
234+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
235235
236236 rustTemplate(
237237 """
238- pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField } {
238+ pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField } {
239239 match self {
240240 #{ValidationExceptionFields}
241241 }
@@ -255,7 +255,7 @@ class UserProvidedValidationExceptionConversionGenerator(
255255 .get(stringTraitInfo) as LengthTrait
256256 rustTemplate(
257257 """
258- Self::Length(length) => #{CustomValidationExceptionField } {
258+ Self::Length(length) => #{UserProvidedValidationExceptionField } {
259259 #{FieldAssignments}
260260 },
261261 """ ,
@@ -278,7 +278,7 @@ class UserProvidedValidationExceptionConversionGenerator(
278278 .get(stringTraitInfo) as PatternTrait
279279 rustTemplate(
280280 """
281- Self::Pattern(_) => #{CustomValidationExceptionField } {
281+ Self::Pattern(_) => #{UserProvidedValidationExceptionField } {
282282 #{FieldAssignments}
283283 },
284284 """ ,
@@ -305,7 +305,7 @@ class UserProvidedValidationExceptionConversionGenerator(
305305 return writable {
306306 rustTemplate(
307307 """
308- pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField } {
308+ pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField } {
309309 match self {
310310 #{ValidationExceptionFields}
311311 }
@@ -315,11 +315,11 @@ class UserProvidedValidationExceptionConversionGenerator(
315315 * codegenCtx,
316316 " ValidationExceptionFields" to
317317 writable {
318- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
318+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
319319 blobConstraintsInfo.forEach { blobLength ->
320320 rustTemplate(
321321 """
322- Self::Length(length) => #{CustomValidationExceptionField } {
322+ Self::Length(length) => #{UserProvidedValidationExceptionField } {
323323 #{FieldAssignments}
324324 },
325325 """ ,
@@ -348,18 +348,18 @@ class UserProvidedValidationExceptionConversionGenerator(
348348 val validationField = maybeValidationField ? : return writable { }
349349
350350 return writable {
351- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
351+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
352352
353353 rustBlockTemplate(
354- " pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField }" ,
354+ " pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField }" ,
355355 * preludeScope,
356356 * codegenCtx,
357357 ) {
358358 rustBlock(" match self" ) {
359359 shape.getTrait<LengthTrait >()?.also {
360360 rustTemplate(
361361 """
362- Self::Length(length) => #{CustomValidationExceptionField } {
362+ Self::Length(length) => #{UserProvidedValidationExceptionField } {
363363 #{FieldAssignments}
364364 },""" ,
365365 * codegenCtx,
@@ -385,13 +385,13 @@ class UserProvidedValidationExceptionConversionGenerator(
385385 val validationField = maybeValidationField ? : return writable { }
386386
387387 return writable {
388- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
388+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
389389 val message = enumTrait.validationErrorMessage()
390390
391391 rustTemplate(
392392 """
393- pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField } {
394- #{CustomValidationExceptionField } {
393+ pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField } {
394+ #{UserProvidedValidationExceptionField } {
395395 #{FieldAssignments}
396396 }
397397 }
@@ -407,13 +407,13 @@ class UserProvidedValidationExceptionConversionGenerator(
407407 val validationField = maybeValidationField ? : return writable { }
408408
409409 return writable {
410- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
410+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
411411
412412 rustTemplate(
413413 """
414- pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField } {
414+ pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField } {
415415 match self {
416- Self::Range(_) => #{CustomValidationExceptionField } {
416+ Self::Range(_) => #{UserProvidedValidationExceptionField } {
417417 #{FieldAssignments}
418418 },
419419 }
@@ -434,10 +434,10 @@ class UserProvidedValidationExceptionConversionGenerator(
434434 val validationField = maybeValidationField ? : return writable { }
435435
436436 return writable {
437- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
437+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
438438
439439 rustBlockTemplate(
440- " pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField }" ,
440+ " pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField }" ,
441441 * preludeScope,
442442 * codegenCtx,
443443 ) {
@@ -448,7 +448,7 @@ class UserProvidedValidationExceptionConversionGenerator(
448448 } else {
449449 rustTemplate(
450450 """
451- ConstraintViolation::${it.name()} => #{CustomValidationExceptionField } {
451+ ConstraintViolation::${it.name()} => #{UserProvidedValidationExceptionField } {
452452 #{FieldAssignments}
453453 },
454454 """ .trimIndent(),
@@ -473,11 +473,11 @@ class UserProvidedValidationExceptionConversionGenerator(
473473 val validationField = maybeValidationField ? : return writable { }
474474
475475 return writable {
476- val fieldAssignments = generateCustomValidationFieldAssignments (validationField)
476+ val fieldAssignments = generateUserProvidedValidationFieldAssignments (validationField)
477477
478478 rustTemplate(
479479 """
480- pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField } {
480+ pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField } {
481481 match self {
482482 #{ValidationExceptionFields}
483483 }
@@ -492,7 +492,7 @@ class UserProvidedValidationExceptionConversionGenerator(
492492 is CollectionTraitInfo .Length -> {
493493 rustTemplate(
494494 """
495- Self::Length(length) => #{CustomValidationExceptionField } {
495+ Self::Length(length) => #{UserProvidedValidationExceptionField } {
496496 #{FieldAssignments}
497497 },
498498 """ ,
@@ -511,7 +511,7 @@ class UserProvidedValidationExceptionConversionGenerator(
511511 is CollectionTraitInfo .UniqueItems -> {
512512 rustTemplate(
513513 """
514- Self::UniqueItems { duplicate_indices, .. } => #{CustomValidationExceptionField } {
514+ Self::UniqueItems { duplicate_indices, .. } => #{UserProvidedValidationExceptionField } {
515515 #{FieldAssignments}
516516 },
517517 """ ,
@@ -548,7 +548,7 @@ class UserProvidedValidationExceptionConversionGenerator(
548548
549549 return writable {
550550 rustBlockTemplate(
551- " pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{CustomValidationExceptionField }" ,
551+ " pub(crate) fn as_validation_exception_field(self, path: #{String}) -> #{UserProvidedValidationExceptionField }" ,
552552 * preludeScope,
553553 * codegenCtx,
554554 ) {
@@ -562,15 +562,15 @@ class UserProvidedValidationExceptionConversionGenerator(
562562 }
563563
564564 /* *
565- * Helper function to generate field assignments for custom validation exception fields
565+ * Helper function to generate field assignments for user provided validation exception fields
566566 */
567- private fun generateCustomValidationFieldAssignments (
568- customValidationExceptionField : StructureShape ,
567+ private fun generateUserProvidedValidationFieldAssignments (
568+ userProvidedValidationExceptionField : StructureShape ,
569569 ): (String , String ) -> Writable =
570570 { rawPathExpression: String , rawMessageExpression: String ->
571571 writable {
572572 rustTemplate(
573- customValidationExceptionField .members().joinToString(" ," ) { member ->
573+ userProvidedValidationExceptionField .members().joinToString(" ," ) { member ->
574574 val memberName = codegenContext.symbolProvider.toMemberName(member)
575575 val pathExpression =
576576 if (member.isOptional) " Some($rawPathExpression )" else rawPathExpression
0 commit comments