reserved words

This commit is contained in:
Niclas Thobaben 2021-10-05 20:27:14 +02:00
parent 6b3339d5f1
commit 757367762f
3 changed files with 10 additions and 6 deletions

View file

@ -11,7 +11,7 @@ const templateUnion = fs.readFileSync(path.resolve(path.join('templates', 'union
module.exports = (service) => { module.exports = (service) => {
const unions = javaUnions.mapUnions(service.unions, service.models, service.namespace) const unions = javaUnions.mapUnions(service.unions, service.models, service.namespace)
const models = javaModels.mapJavaModels(service.models, service.namespace) const models = javaModels.mapJavaModels(service.models, service.namespace, 'models', service)
const enums = javaModels.mapJavaEnums(service.enums, service.namespace) const enums = javaModels.mapJavaEnums(service.enums, service.namespace)
const modelFiles = models.map(model => { const modelFiles = models.map(model => {

View file

@ -3,14 +3,14 @@ const javaType = require('./java-type')
module.exports = { module.exports = {
mapJavaModels: (models, namespace, suffix='models') => { mapJavaModels: (models, namespace, suffix='models', service) => {
return models.map(model => { return models.map(model => {
model.name = utils.pascalcase(model.name) model.name = utils.pascalcase(model.name)
model.package = `${namespace}.${suffix}`; model.package = `${namespace}.${suffix}`;
model.dir = model.package.replace(/\./g, '/') model.dir = model.package.replace(/\./g, '/')
model.fields = model.fields.map(field => { model.fields = model.fields.map(field => {
field.nameSafe = utils.camelcase(javaType.safeName(field.name)) field.nameSafe = utils.camelcase(javaType.safeName(field.name))
field.type = javaType.mapJavaType(field.type, namespace) field.type = javaType.mapJavaType(field.type, namespace, '', service)
field.default = javaType.mapDefaultValue(field.type, field.default) field.default = javaType.mapDefaultValue(field.type, field.default)
return field return field
}) })

View file

@ -64,22 +64,26 @@ const SUPPORTED_TYPES = {
} }
} }
function getCustomType(type, namespace, suffix='') { function getCustomType(type, namespace, suffix='', service) {
let match = LAST_ELEMENT_REGEX.exec(type) let match = LAST_ELEMENT_REGEX.exec(type)
let name = '' let name = ''
let importstatement = null let importstatement = null
let isEnum = false
if(match) { if(match) {
name = utils.pascalcase(match[2])+suffix name = utils.pascalcase(match[2])+suffix
isEnum = match[1].includes('enums')
importstatement = `${match[1].replace('enums', 'models')}.${name}` importstatement = `${match[1].replace('enums', 'models')}.${name}`
}else { }else {
name = utils.pascalcase(type)+suffix name = utils.pascalcase(type)+suffix
isEnum = service.enums.find(e => e.name == type) ? true : false
importstatement = `${namespace}.models.${name}` importstatement = `${namespace}.models.${name}`
} }
return { return {
name, name,
baseType: name, baseType: name,
isEnum,
fullQualifiedName: importstatement, fullQualifiedName: importstatement,
imports: [ importstatement ] imports: [ importstatement ]
} }
@ -98,9 +102,9 @@ function mapCollection(type) {
} }
module.exports = { module.exports = {
mapJavaType: (type, namespace, suffix='') => { mapJavaType: (type, namespace, suffix='', service) => {
const baseType = COLLECTION_REGEX.exec(type)[1] const baseType = COLLECTION_REGEX.exec(type)[1]
let javaType = SUPPORTED_TYPES[baseType] || getCustomType(baseType, namespace, suffix) let javaType = SUPPORTED_TYPES[baseType] || getCustomType(baseType, namespace, suffix, service)
if(type.startsWith('[')) { if(type.startsWith('[')) {
javaType = mapCollection(javaType); javaType = mapCollection(javaType);