{{#if (isString)}}
{{#if pattern}}
{{#join '_validationAnnotationProperties' ', '}}
regexp = {{{stringLiteral pattern}}}
{{#ifvex 'x-pattern-message'}}message = {{{stringLiteral vendorExtensions.x-pattern-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.Pattern({{{_validationAnnotationProperties}}})
{{/if}}
{{#or minLength maxLength}}
{{#join '_validationAnnotationProperties' ', '}}
{{#if minLength}}min = {{minLength}}{{/if}}
{{#if maxLength}}max = {{maxLength}}{{/if}}
{{#ifvex 'x-length-message'}}message = {{{stringLiteral vendorExtensions.x-length-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.Size({{{_validationAnnotationProperties}}})
{{/or}}
{{/if}}
{{#if (isArray)}}
{{#or minItems maxItems}}
{{#join '_validationAnnotationProperties' ', '}}
{{#if minItems}}min = {{minItems}}{{/if}}
{{#if maxItems}}max = {{maxItems}}{{/if}}
{{#ifvex 'x-length-message'}}message = {{{stringLiteral vendorExtensions.x-length-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.Size({{{_validationAnnotationProperties}}})
{{/or}}
{{/if}}
{{#if (isInteger)}}
{{#if minimum}}
{{#join '_validationAnnotationProperties' ', '}}
value = {{{minimum}}}L
{{#ifvex 'x-minimum-message'}}message = {{{stringLiteral vendorExtensions.x-minimum-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.Min({{{_validationAnnotationProperties}}})
{{/if}}
{{#if maximum}}
{{#join '_validationAnnotationProperties' ', '}}
value = {{{maximum}}}L
{{#ifvex 'x-maximum-message'}}message = {{{stringLiteral vendorExtensions.x-maximum-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.Max({{{_validationAnnotationProperties}}})
{{/if}}
{{/if}}
{{#if (isNumber)}}
{{#if minimum}}
{{#join '_validationAnnotationProperties' ', '}}
value = {{{stringLiteral minimum}}}
{{#ifvex 'x-minimum-message'}}message = {{{stringLiteral vendorExtensions.x-minimum-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.DecimalMin({{{_validationAnnotationProperties}}})
{{/if}}
{{#if maximum}}
{{#join '_validationAnnotationProperties' ', '}}
value = {{{stringLiteral maximum}}}
{{#ifvex 'x-maximum-message'}}message = {{{stringLiteral vendorExtensions.x-maximum-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.DecimalMax({{{_validationAnnotationProperties}}})
{{/if}}
{{/if}}
{{!
Email addresses
}}
{{#join '_validationAnnotationProperties' ', '}}
{{#ifvex 'x-email-message'}}message = {{{stringLiteral vendorExtensions.x-email-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
{{#ifeq format 'email'}}
@{{javax}}.validation.constraints.Email{{#if _validationAnnotationProperties}}({{{_validationAnnotationProperties}}}){{/if}}
{{else ifvex 'x-email'}}
@{{javax}}.validation.constraints.Email{{#if _validationAnnotationProperties}}({{{_validationAnnotationProperties}}}){{/if}}
{{/ifeq}}
{{!
Not blank
}}
{{#ifvex 'x-not-blank'}}
{{#join '_validationAnnotationProperties' ', '}}
{{#ifvex 'x-not-blank-message'}}message = {{{stringLiteral vendorExtensions.x-not-blank-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.NotBlank{{#if _validationAnnotationProperties}}({{{_validationAnnotationProperties}}}){{/if}}
{{/ifvex}}
{{!
Not empty
}}
{{#if (lookup vendorExtensions 'x-not-empty')}}
{{#join '_validationAnnotationProperties' ', '}}
{{#ifvex 'x-not-empty-message'}}message = {{{stringLiteral vendorExtensions.x-not-empty-message}}}{{/ifvex}}
{{>frag/beanValidationAnnotationProperties}}
{{/join}}
@{{javax}}.validation.constraints.NotEmpty{{#if _validationAnnotationProperties}}({{{_validationAnnotationProperties}}}){{/if}}
{{/if}}
