64 lines
2.8 KiB
Plaintext
64 lines
2.8 KiB
Plaintext
## =====================================================================
|
|
## 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##
|