@@ -49,6 +49,14 @@ ${this.indent(this.renderBlock(content, 2))}
4949 content . push ( additionalProperty ) ;
5050 }
5151
52+ if ( this . model . patternProperties !== undefined ) {
53+ for ( const [ pattern , patternModel ] of Object . entries ( this . model . patternProperties ) ) {
54+ const propertyName = getUniquePropertyName ( this . model , `${ pattern } ${ DefaultPropertyNames . patternProperties } ` ) ;
55+ const renderedPatternProperty = await this . runPropertyPreset ( propertyName , patternModel , PropertyType . patternProperties ) ;
56+ content . push ( renderedPatternProperty ) ;
57+ }
58+ }
59+
5260 return this . renderBlock ( content ) ;
5361 }
5462
@@ -73,6 +81,15 @@ ${this.indent(this.renderBlock(content, 2))}
7381 content . push ( this . renderBlock ( [ getter , setter ] ) ) ;
7482 }
7583
84+ if ( this . model . patternProperties !== undefined ) {
85+ for ( const [ pattern , patternModel ] of Object . entries ( this . model . patternProperties ) ) {
86+ const propertyName = getUniquePropertyName ( this . model , `${ pattern } ${ DefaultPropertyNames . patternProperties } ` ) ;
87+ const getter = await this . runGetterPreset ( propertyName , patternModel , PropertyType . patternProperties ) ;
88+ const setter = await this . runSetterPreset ( propertyName , patternModel , PropertyType . patternProperties ) ;
89+ content . push ( this . renderBlock ( [ getter , setter ] ) ) ;
90+ }
91+ }
92+
7693 return this . renderBlock ( content , 2 ) ;
7794 }
7895
@@ -92,7 +109,7 @@ export const JAVA_DEFAULT_CLASS_PRESET: ClassPreset<ClassRenderer> = {
92109 property ( { renderer, propertyName, property, type } ) {
93110 propertyName = renderer . nameProperty ( propertyName , property ) ;
94111 let propertyType = renderer . renderType ( property ) ;
95- if ( type === PropertyType . additionalProperty ) {
112+ if ( type === PropertyType . additionalProperty || type === PropertyType . patternProperties ) {
96113 propertyType = `Map<String, ${ propertyType } >` ;
97114 }
98115 return `private ${ propertyType } ${ propertyName } ;` ;
@@ -101,7 +118,7 @@ export const JAVA_DEFAULT_CLASS_PRESET: ClassPreset<ClassRenderer> = {
101118 propertyName = renderer . nameProperty ( propertyName , property ) ;
102119 const getterName = `get${ FormatHelpers . toPascalCase ( propertyName ) } ` ;
103120 let getterType = renderer . renderType ( property ) ;
104- if ( type === PropertyType . additionalProperty ) {
121+ if ( type === PropertyType . additionalProperty || type === PropertyType . patternProperties ) {
105122 getterType = `Map<String, ${ getterType } >` ;
106123 }
107124 return `public ${ getterType } ${ getterName } () { return this.${ propertyName } ; }` ;
@@ -110,7 +127,7 @@ export const JAVA_DEFAULT_CLASS_PRESET: ClassPreset<ClassRenderer> = {
110127 propertyName = renderer . nameProperty ( propertyName , property ) ;
111128 const setterName = FormatHelpers . toPascalCase ( propertyName ) ;
112129 let setterType = renderer . renderType ( property ) ;
113- if ( type === PropertyType . additionalProperty ) {
130+ if ( type === PropertyType . additionalProperty || type === PropertyType . patternProperties ) {
114131 setterType = `Map<String, ${ setterType } >` ;
115132 }
116133 return `public void set${ setterName } (${ setterType } ${ propertyName } ) { this.${ propertyName } = ${ propertyName } ; }` ;
0 commit comments