#! /usr/bin/env runjs requireJAR('dataaccess-1.0.jar'); var System = java.lang.System; var DataAccessUtil = Packages.me.hatter.tools.dataaccess.util.DataAccessUtil; var SQLiteDialectImpl = Packages.me.hatter.tools.dataaccess.dialect.impl.SQLiteDialectImpl; var InMemoryCompiler = Packages.me.hatter.tools.commons.classloader.compile.InMemoryCompiler; var EntityJavaSourceCodeGenerateTool = Packages.me.hatter.tools.dataaccess.entity.EntityJavaSourceCodeGenerateTool; var main = () => { var accessJarPath = System.getProperty('user.home') + '/.jssp/cache/dataaccess-1.0.jar'; var classPath = System.getProperty('java.class.path') + ':' + accessJarPath; var files = $$.file('.').listFiles(); var allCreateSQLs = []; $ARRAY(files).filter((f) => { return f.isFile() && f.getName().endsWith('.entity.json') }).forEach((f) => { println('Entity JSON file: ' + f); var json = $$.rFile(f).string(); var sourceCode = EntityJavaSourceCodeGenerateTool.instance().config(json).generate(); $$.rFile(f.getName() + '.source.txt').write(sourceCode.getCharContent(true)); var clazz = InMemoryCompiler.systemInstance().classPath(classPath).compile(sourceCode); var createSQL = DataAccessUtil.generateCreateSQL(clazz, new SQLiteDialectImpl()); println('... ' + clazz); allCreateSQLs.push(createSQL + ';'); }); println(); if (allCreateSQLs.length == 0) { println('No Create SQL Generated.'); } else { println('All Create SQL:'); allCreateSQLs.forEach((sql) => { println(' ' + sql); }); } }; main();