## ===================================================================== ## 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##