Skip to content

Commit e6c4b5f

Browse files
committed
improve type handling of configuration values
1 parent 7bde534 commit e6c4b5f

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/controller/bundle/Configuration.xtend

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class Configuration {
7878
->info('«additionalInfo»')
7979
«ENDIF»
8080
->defaultValue(«initialValue»)
81-
«validation»
81+
«validation»«normalizer»
8282
->end()
8383
'''
8484
@@ -139,4 +139,23 @@ class Configuration {
139139
'''
140140
141141
def private listEntry(ListFieldItem it) '''«IF null !== value»«value.replace("'", "")»«ELSE»«name.formatForCode.replace("'", "")»«ENDIF»'''
142+
143+
144+
def private normalizer(Field it) {
145+
if (null !== normalizerTypeCast) '''
146+
->beforeNormalization()
147+
->ifString()->then(fn ($v) => («normalizerTypeCast») $v)
148+
->end()
149+
'''
150+
else ''
151+
}
152+
153+
def private normalizerTypeCast(Field it) {
154+
switch (it) {
155+
BooleanField: 'bool'
156+
NumberField case NumberFieldType.INTEGER === numberType: 'int'
157+
NumberField: 'float'
158+
default: null
159+
}
160+
}
142161
}

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/models/EntityInitializer.xtend

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ class EntityInitializer {
6565
«IF supportLocaleFilter»protected readonly RequestStack $requestStack,«ENDIF»
6666
protected readonly PermissionHelper $permissionHelper«IF hasListFieldsExceptWorkflowState»,
6767
protected readonly ListEntriesHelper $listEntriesHelper«ENDIF»«IF hasGeographical»,
68-
protected readonly string $defaultLatitude,
69-
protected readonly string $defaultLongitude«ENDIF»
68+
protected readonly float $defaultLatitude,
69+
protected readonly float $defaultLongitude«ENDIF»
7070
) {
7171
}
7272
«FOR entity : entities»

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/smallstuff/BundleFile.xtend

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ class BundleFile {
135135

136136
«IF hasGeographical»
137137
$services->get(EntityInitializer::class)
138-
->arg('$defaultLatitude', $config['geo']['default_latitude'])
139-
->arg('$defaultLongitude', $config['geo']['default_longitude']);
138+
->arg('$defaultLatitude', (float) $config['geo']['default_latitude'])
139+
->arg('$defaultLongitude', (float) $config['geo']['default_longitude']);
140140
«ENDIF»
141141
«IF hasLoggable»
142142
$services->get(EntityLifecycleListener::class)

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/extensions/transformation/PersistenceTransformer.xtend

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ class PersistenceTransformer {
474474
]
475475
varContainer.fields += factory.createNumberField => [
476476
name = 'defaultLongitude'
477+
numberType = NumberFieldType.DECIMAL
477478
defaultValue = '12.36'
478479
documentation = 'The default longitude.'
479480
]

0 commit comments

Comments
 (0)