Если я правильно понимаю, вы хотите заменить модель сущности Telosys набором файлов JSON, это так?
Я думаю, что это возможно, но нам придется изменить поведение Telosys ...
Во-первых, невозможно запустить генерацию кода Telosys без модели, поэтому вы должны создать пустую модель DSL , например модель DSL «void-model.model» с один «поддельный объект» (например, «поддельный объект» только с атрибутом «id»)
Во-вторых, файл « templates.cfg » применяется ко всемсущности, определенные в модели, и в вашем случае нет сущностей, только файлы JSON.Для каждой строки файла templates.cfg необходимо указать количество элементов, равное «1» , чтобы каждый шаблон выполнялся один раз, независимо от количества объектов.
У вас просто естьдобавить «1» после последнего «;»каждая строка, пример:
Dto ; Dto.txt ; log ; dto.vm ; 1
На этом шаге можно запустить один раз каждый шаблон, определенный в "templates.cfg"
Идея состоит в том, чтобы перебрать все файлы JSON в каждом шаблонеи выполнить «под-шаблон» для каждого файла JSON.Этот «суб-шаблон» является шаблоном, который будет выполнять реальную работу.
Для просмотра каталога необходимо создать определенный класс Java , который предоставит список файлов JSON.,Затем объект $ generator можно использовать для выполнения «подшаблона» для каждого файла JSON.
Пример основного шаблона:
## This template generates only a log file (see templates.cfg)
## Create instance of the specific class
#set($dir = $loader.newInstance('mypackage.MyClass'))
## Use specific class instance to get all the JSON files
#set($jsonFiles = $dir.getJSONFiles() )
#foreach($json in $jsonFiles)
## Printed in log file
Processing $json
#set( $fileName = "${json}-file.txt")
#set( $folder = 'dest' )
## Execute the sub-template 'dto_sub.vm'
$generator.generate('Fake', $fileName , $folder, "dto_sub.vm" )
#end
В подэлементеШаблон (например, "dto_sub.vm") использует $ target.file для определения цели и, следовательно, необходим файл JSON
И использует другой определенный класс для загрузки содержимого файла JSON и просто использует его для генерации кода.
См. Документацию:
Специальный класс Java: http://www.telosys.org/templates-doc/objects/loader.html
Генерация под-шаблона: http://www.telosys.org/templates-doc/objects/generator.html