Exemple #1
0
 def massageOutputFileName(self, opFileName):
     try:
         fn, *rest = opFileName.split('.')
         return GenUtils.spinal(fn) + "." + (".").join(rest)
     except:
         print(sys.exc_info()[1])
         return None
Exemple #2
0
    def temlateToFile(self, t, entity, pck, typename='entity', filterPacks=[]):

        lname = GenUtils.toFirstLower(entity.name)

        filename: str = t.parts[len(t.parts) - 1].replace('.jinja2', '')

        # print('trying to load template ' + str(t))

        filename = filename.replace(typename + '$', entity.name)
        fldr = self.getGeneratedFileName(entity, filename, lname, pck, t,
                                         typename)

        if not filename.startswith(typename) and '$' in filename:
            print("ret " + filename + " " + typename)
            return

        stemPackName = fldr.split('/')[len(fldr.split('/')) -
                                       1]  #TODO : wont work on windows

        #print(stemPackName)
        if (len(filterPacks) == 0 or stemPackName in filterPacks):
            #print('trying to load template ' + str(t))
            template = self.jinja_env.get_template(str(t))
            packageName = f'{utils.getTopLevelPackage()}.{pck.name}.{stemPackName}'

            def createFqn(extension, fileExtension=None):
                fileExtension = f'{GenUtils.toFirstUpper(extension)}' if not fileExtension else fileExtension
                return f'{utils.getTopLevelPackage()}.{pck.name}.{extension}.{entity.name}{fileExtension}'

            out = template.render(mdl=pck.parent,
                                  pck=packageName,
                                  entity=entity,
                                  fqn=createFqn('model', ' '),
                                  fqnRepo=createFqn('repository'),
                                  fqnService=createFqn('service'),
                                  name=entity.name,
                                  lname=lname,
                                  genUtils=GenUtils())
            opFileName = self.massageOutputFileName(filename)
            if (opFileName):
                opfldr = stringcase.spinalcase(fldr)
                writeToFile(f'srcgen/{opfldr}', opFileName, out)
Exemple #3
0
"""
An example how to generate java code from textX model using jinja2
template engine (http://jinja.pocoo.org/docs/dev/)
"""



from commons.GenUtils import GenUtils
from commons.helpers import *

modelFile = '../model/users.ent'

from commons.BaseGen import  BaseGen


utils = GenUtils()

import os


class JavaGen(BaseGen):

    types =  {
        'integer': 'Integer',
        'int' : 'int',
        'string': 'String',
        'date' : 'Date',
        'bool' : 'boolean',
        'text' : 'String',
        'currency': 'BigDecimal'
    }
Exemple #4
0
from commons.GenUtils import GenUtils
from commons.helpers import *
import shutil
from pathlib import Path
import sys

utils = GenUtils()
topLevelPackage = 'com.bfwg'

import jinja2
import os

from commons.GenUtils import GenUtils
from commons.helpers import *
from abc import ABC, abstractmethod
from os import mkdir

import shutil
import stringcase

this_folder = dirname(__file__)
metaModel = '../metamodel/entity.tx'

#TODO: pass into functions
#topLevelPackage = 'com.bfwg'

import jinja2

utils = GenUtils()

Exemple #5
0
 def massageOutputFileName(self, opFileName):
     return GenUtils.toFirstLower(opFileName)