@@ -21,6 +21,7 @@ import java.util.ArrayList
2121import java.util.HashMap
2222import java.util.LinkedHashMap
2323import java.util.List
24+ import java.util.logging.Logger
2425import oracle.ide.config.Preferences
2526import org.oddgen.sqldev.generators.OddgenGenerator2
2627import org.oddgen.sqldev.generators.model.Node
@@ -32,12 +33,14 @@ import org.utplsql.sqldev.model.preference.PreferenceModel
3233import org.utplsql.sqldev.resources.UtplsqlResources
3334
3435class TestGenerator implements OddgenGenerator2 {
36+ static final Logger logger = Logger . getLogger(TestGenerator . name);
3537
3638 public static val YES = " Yes"
3739 public static val NO = " No"
3840
3941 public static var GENERATE_FILES = UtplsqlResources . getString(" PREF_GENERATE_FILES_LABEL" )
4042 public static var OUTPUT_DIRECTORY = UtplsqlResources . getString(" PREF_OUTPUT_DIRECTORY_LABEL" )
43+ public static var DELETE_EXISTING_FILES = UtplsqlResources . getString(" PREF_DELETE_EXISTING_FILES_LABEL" )
4144 public static var TEST_PACKAGE_PREFIX = UtplsqlResources . getString(" PREF_TEST_PACKAGE_PREFIX_LABEL" )
4245 public static var TEST_PACKAGE_SUFFIX = UtplsqlResources . getString(" PREF_TEST_PACKAGE_SUFFIX_LABEL" )
4346 public static var TEST_UNIT_PREFIX = UtplsqlResources . getString(" PREF_TEST_UNIT_PREFIX_LABEL" )
@@ -56,8 +59,6 @@ class TestGenerator implements OddgenGenerator2 {
5659 val context = new GenContext ()
5760 context. objectType = node. toObjectType
5861 context. objectName = node. toObjectName
59- context. generateFiles = node. params. get(GENERATE_FILES ) == YES
60- context. outputDirectory = node. params. get(OUTPUT_DIRECTORY )
6162 context. testPackagePrefix = node. params. get(TEST_PACKAGE_PREFIX ). toLowerCase
6263 context. testPackageSuffix = node. params. get(TEST_PACKAGE_SUFFIX ). toLowerCase
6364 context. testUnitPrefix = node. params. get(TEST_UNIT_PREFIX ). toLowerCase
@@ -75,7 +76,21 @@ class TestGenerator implements OddgenGenerator2 {
7576 }
7677
7778 private def void saveConsoleOutput (String s ) {
78- consoleOutput. add(s)
79+ if (s !== null ) {
80+ for (line : s. split(" [\\ n\\ r]+" )) {
81+ consoleOutput. add(line)
82+ }
83+ }
84+ }
85+
86+ private def void logConsoleOutput () {
87+ for (line : consoleOutput) {
88+ if (line. contains(" error" ) || line. startsWith(" Cannot" )) {
89+ logger. severe(line)
90+ } else {
91+ logger. fine(line)
92+ }
93+ }
7994 }
8095
8196 private def String deleteFile (File file ) {
@@ -145,6 +160,7 @@ class TestGenerator implements OddgenGenerator2 {
145160 val params = new LinkedHashMap<String , String > ()
146161 params. put(GENERATE_FILES , if (preferences. generateFiles) {YES } else {NO })
147162 params. put(OUTPUT_DIRECTORY , preferences. outputDirectory)
163+ params. put(DELETE_EXISTING_FILES , if (preferences. deleteExistingFiles) {YES } else {NO })
148164 params. put(TEST_PACKAGE_PREFIX , preferences. testPackagePrefix)
149165 params. put(TEST_PACKAGE_SUFFIX , preferences. testPackageSuffix)
150166 params. put(TEST_UNIT_PREFIX , preferences. testUnitPrefix)
@@ -197,22 +213,27 @@ class TestGenerator implements OddgenGenerator2 {
197213 lov. put(GENERATE_COMMENTS , #[YES , NO ])
198214 lov. put(DISABLE_TESTS , #[YES , NO ])
199215 lov. put(GENERATE_FILES , #[YES , NO ])
216+ lov. put(DELETE_EXISTING_FILES , #[YES , NO ])
200217 return lov
201218 }
202219
203220 override getParamStates (Connection conn , LinkedHashMap<String , String > params , List<Node > nodes ) {
204221 val paramStates = new HashMap<String , Boolean >
205222 paramStates. put(OUTPUT_DIRECTORY , params. get(GENERATE_FILES ) == YES )
223+ paramStates. put(DELETE_EXISTING_FILES , params. get(GENERATE_FILES ) == YES )
206224 return paramStates
207225 }
208226
209227 override generateProlog (Connection conn , List<Node > nodes ) '''
210228 «val generateFiles = nodes.get (0 ).params.get (GENERATE_FILES ) == YES»
211229 «val outputDirectory = nodes.get (0 ).params.get (OUTPUT_DIRECTORY )»
230+ «val deleteExistingfiles = nodes.get (0 ).params.get (DELETE_EXISTING_FILES ) == YES»
212231 «IF generateFiles»
213232 «resetConsoleOutput»
214233 «outputDirectory.mkdirs.saveConsoleOutput»
215- «deleteFiles (outputDirectory ).toString.saveConsoleOutput»
234+ «IF deleteExistingfiles»
235+ «deleteFiles (outputDirectory ).toString.saveConsoleOutput»
236+ «ENDIF»
216237 --
217238 -- install generated utPLSQL test packages
218239 --
@@ -232,10 +253,11 @@ class TestGenerator implements OddgenGenerator2 {
232253
233254 «ENDIF»
234255 «ENDFOR»
235- «IF generateFiles && consoleOutput.size > 0»
256+ «logConsoleOutput»
257+ «IF generateFiles && consoleOutput.findFirst[it.contains ("error ")] !== null»
236258
237259 --
238- -- console output produced during the generation of this script
260+ -- console output produced during the generation of this script ( errors found )
239261 --
240262 /*
241263
0 commit comments