This commit is contained in:
2026-05-29 10:45:56 +09:00
commit 9d69a95a5b
23 changed files with 610 additions and 0 deletions
@@ -0,0 +1,63 @@
## =====================================================================
## AUTO IMPORTS SCANNER
## type-mapping.csv + converters.csv 의 매칭 행에서 FQN 을 추출해
## $extraImports 에 모은다. XxxBase 에서 import 로 emit.
## - CSV 는 FQN 으로 작성, 짧은 이름 변환은 자동.
## - java.lang.* 는 import 안 함.
## Velocity 1.x 산술 미지원 → $foreach.index 사용.
## =====================================================================
#set( $extraImports = [] )##
#foreach( $attribute in $entity.nonKeyAttributes )##
#foreach( $row in $typeMapRows )##
#if( $row.size() >= 2 && $row.get(0).trim().equals($attribute.databaseName) )##
#set( $tStr = $row.get(1).trim() )##
#set( $ltI = $tStr.indexOf("<") )##
#if( $ltI >= 0 )#set( $bFqn = $tStr.substring(0, $ltI) )#else#set( $bFqn = $tStr )#end##
#if( $bFqn.contains(".") && !$bFqn.startsWith("java.lang.") && !$extraImports.contains($bFqn) )##
#set( $void = $extraImports.add($bFqn) )##
#end##
#if( $row.size() >= 3 )##
#set( $aStr = $row.get(2).trim() )##
#set( $tokens = $aStr.split("[^A-Za-z0-9_.]+") )##
#foreach( $tok in $tokens )##
#if( $tok.contains(".") )##
#set( $segs = $tok.split("[.]") )##
#set( $upIdx0 = -1 )##
#foreach( $seg in $segs )##
#if( $upIdx0 < 0 && $seg.length() > 0 )##
#set( $c0 = $seg.substring(0,1) )##
#if( !$c0.equals($c0.toLowerCase()) )#set( $upIdx0 = $foreach.index )#end##
#end##
#end##
#if( $upIdx0 > 0 )##
#set( $f = "" )##
#foreach( $seg in $segs )##
#if( $foreach.index == 0 )#set( $f = $seg )#elseif( $foreach.index <= $upIdx0 )#set( $f = "${f}.${seg}" )#end##
#end##
#if( !$f.startsWith("java.lang.") && !$extraImports.contains($f) )#set( $void = $extraImports.add($f) )#end##
#end##
#end##
#end##
#end##
#end##
#end##
#foreach( $row in $convRows )##
#if( $row.size() >= 3 && $row.get(0).trim().equals($attribute.databaseName) )##
#set( $ct = $row.get(1).trim() )##
#if( $ct.contains(".") && !$ct.startsWith("java.lang.") && !$extraImports.contains($ct) )#set( $void = $extraImports.add($ct) )#end##
#set( $cc = $row.get(2).trim() )##
#if( $cc.contains(".") && !$cc.startsWith("java.lang.") && !$extraImports.contains($cc) )#set( $void = $extraImports.add($cc) )#end##
#end##
#end##
#if( $attribute.hasTag("javaType") )##
#set( $jt = $attribute.tagValue("javaType") )##
#set( $jtBase = $jt )##
#set( $ltJ = $jt.indexOf("<") )##
#if( $ltJ >= 0 )#set( $jtBase = $jt.substring(0, $ltJ) )#end##
#if( $jtBase.contains(".") && !$jtBase.startsWith("java.lang.") && !$extraImports.contains($jtBase) )#set( $void = $extraImports.add($jtBase) )#end##
#end##
#if( $attribute.hasTag("converter") )##
#set( $cv = $attribute.tagValue("converter") )##
#if( $cv.contains(".") && !$cv.startsWith("java.lang.") && !$extraImports.contains($cv) )#set( $void = $extraImports.add($cv) )#end##
#end##
#end##
@@ -0,0 +1,12 @@
## =====================================================================
## CONVERTER MAPPING LOADER
## 외부 설정 파일 'converters.csv' 를 읽어 행 리스트($convRows)로 보관.
## 형식(세미콜론 구분): DB컬럼명 ; enum타입FQN ; 컨버터FQN
## -> 이 .vm 은 수정 불필요. 매핑은 converters.csv 에서만 관리.
## =====================================================================
#set( $convFile = $fn.fileFromBundle("converters.csv") )
#if( $convFile.exists() )
#set( $convRows = $convFile.loadValues(";") )
#else
#set( $convRows = [] )
#end
@@ -0,0 +1,9 @@
## #set($recordClass = "${entity.name}Record" )
## #set($recordInstance = $fn.uncapitalize($entity.name) )
##
#set($jpaEntityClass = "${entity.name}" )
#set($jpaEntityIdClass = "${entity.name}Id" )
##
## #set($jpaMapperClass = "${entity.name}RecordMapper" )
## #set($jpaMapperInstance = "${recordInstance}Mapper" )
##
@@ -0,0 +1,4 @@
/*
* Created on $now.date ( $now.time )
* Generated by Telosys ( http://www.telosys.org/ ) version $generator.version
*/
@@ -0,0 +1,12 @@
## =====================================================================
## TYPE MAPPING LOADER
## 외부 설정 파일 'type-mapping.csv' 를 읽어 행 리스트($typeMapRows)로 보관.
## 형식(세미콜론 구분): DB컬럼명 ; Java타입(FQN) ; 추가 어노테이션(선택)
## -> 이 .vm 은 수정 불필요. 매핑은 type-mapping.csv 에서만 관리.
## =====================================================================
#set( $typeMapFile = $fn.fileFromBundle("type-mapping.csv") )
#if( $typeMapFile.exists() )
#set( $typeMapRows = $typeMapFile.loadValues(";") )
#else
#set( $typeMapRows = [] )
#end