1616package org .utplsql .sqldev .menu ;
1717
1818import java .awt .Component ;
19- import java .io .IOException ;
2019import java .net .URL ;
2120import java .sql .Connection ;
22- import java .sql .SQLException ;
2321import java .util .ArrayList ;
2422import java .util .HashSet ;
2523import java .util .List ;
3533import org .utplsql .sqldev .dal .RealtimeReporterDao ;
3634import org .utplsql .sqldev .dal .UtplsqlDao ;
3735import org .utplsql .sqldev .exception .GenericRuntimeException ;
36+ import org .utplsql .sqldev .model .DatabaseTools ;
3837import org .utplsql .sqldev .model .StringTools ;
3938import org .utplsql .sqldev .model .URLTools ;
4039import org .utplsql .sqldev .model .oddgen .GenContext ;
6261import oracle .ide .editor .Editor ;
6362import oracle .ide .model .Node ;
6463import oracle .ide .view .View ;
65- import oracle .javatools .db .DBException ;
6664
6765@ SuppressWarnings ("all" )
6866public class UtplsqlController implements Controller {
@@ -92,7 +90,7 @@ public boolean handleEvent(final IdeAction action, final Context context) {
9290 return true ;
9391 }
9492 } catch (Exception e ) {
95- final String msg = "Failed to handle event due to exception " + ( e != null ? e . getMessage () : "" ) + "." ;
93+ final String msg = "Failed to handle event for action " + action . toString ( ) + "." ;
9694 logger .severe (() -> msg );
9795 throw new GenericRuntimeException (msg , e );
9896 }
@@ -122,7 +120,7 @@ public boolean update(final IdeAction action, final Context context) {
122120 }
123121 logger .fine ("connectionName: " + connectionName );
124122 final String text = ((JEditorPane ) component ).getText ();
125- final Connection conn = getConnection (connectionName );
123+ final Connection conn = DatabaseTools . getConnection (connectionName );
126124 final UtplsqlParser parser = new UtplsqlParser (text , conn , owner );
127125 if (!parser .getPathAt (((JEditorPane ) component ).getCaretPosition ()).isEmpty ()) {
128126 action .setEnabled (true );
@@ -141,11 +139,11 @@ public boolean update(final IdeAction action, final Context context) {
141139 final Object element = context .getSelection ()[i ];
142140 final String connectionName = URLTools .getConnectionName (getURL (context ));
143141 if (Connections .getInstance ().isConnectionOpen (connectionName )) {
144- Connection conn = getConnection (connectionName );
142+ Connection conn = DatabaseTools . getConnection (connectionName );
145143 final UtplsqlDao dao = new UtplsqlDao (conn );
146144 if (preferences .isCheckRunUtplsqlTest () && dao .isUtAnnotationManagerInstalled ()) {
147145 if (element instanceof DatabaseConnection ) {
148- final String schema = getSchema (getConnection (( DatabaseConnection ) element ) );
146+ final String schema = DatabaseTools . getSchema (( DatabaseConnection ) element );
149147 action .setEnabled (dao .containsUtplsqlTest (schema ));
150148 } else if ((element instanceof SchemaFolder )) {
151149 final String schema = ((SchemaFolder ) element ).getSchemaName ();
@@ -207,7 +205,7 @@ public boolean update(final IdeAction action, final Context context) {
207205 private String getPath (final Object element ) {
208206 String path = null ;
209207 if (element instanceof DatabaseConnection ) {
210- path = getSchema (getConnection ((( DatabaseConnection ) element )) );
208+ path = DatabaseTools . getSchema (( DatabaseConnection ) element );
211209 } else if (element instanceof SchemaFolder ) {
212210 path = ((SchemaFolder ) element ).getSchemaName ();
213211 } else if (element instanceof ObjectFolder ) {
@@ -306,7 +304,7 @@ private GenContext getGenContext(final Context context) {
306304 final String connectionName = URLTools .getConnectionName (getURL (context ));
307305 final GenContext genContext = new GenContext ();
308306 if (Connections .getInstance ().isConnectionOpen (connectionName )) {
309- genContext .setConn (getConnection (connectionName ));
307+ genContext .setConn (DatabaseTools . getConnection (connectionName ));
310308 final Object element = context .getSelection ()[0 ];
311309 if ((element instanceof PlSqlNode )) {
312310 genContext .setObjectType (((PlSqlNode ) element ).getObjectType ().replace (" BODY" , "" ));
@@ -317,37 +315,7 @@ private GenContext getGenContext(final Context context) {
317315 }
318316 return genContext ;
319317 }
320-
321- private Connection getConnection (String connectionName ) {
322- try {
323- return Connections .getInstance ().getConnection (connectionName );
324- } catch (DBException e ) {
325- final String msg = "DBException while getting connection for " + connectionName + " due to " + e .getMessage ();
326- logger .severe (() -> msg );
327- throw new GenericRuntimeException (msg , e );
328- }
329- }
330-
331- private Connection getConnection (DatabaseConnection dbconn ) {
332- try {
333- return dbconn .getConnection ();
334- } catch (IOException e ) {
335- final String msg = "IOException while getting connection for " + dbconn .getConnectionName () + " due to " + e .getMessage ();
336- logger .severe (() -> msg );
337- throw new GenericRuntimeException (msg , e );
338- }
339- }
340318
341- private String getSchema (Connection conn ) {
342- try {
343- return conn .getSchema ();
344- } catch (SQLException e ) {
345- final String msg = "SQLException while getting schema for connection due to " + e .getMessage ();
346- logger .severe (() -> msg );
347- throw new GenericRuntimeException (msg , e );
348- }
349- }
350-
351319 public void runTest (final Context context ) {
352320 final View view = context .getView ();
353321 final Node node = context .getNode ();
@@ -373,7 +341,7 @@ public void runTest(final Context context) {
373341 }
374342 }
375343 logger .fine ("connectionName: " + connectionName );
376- final Connection conn = getConnection (connectionName );
344+ final Connection conn = DatabaseTools . getConnection (connectionName );
377345 String text = ((JEditorPane ) component ).getText ();
378346 final UtplsqlParser parser = new UtplsqlParser (text , conn , owner );
379347 final int position = ((JEditorPane ) component ).getCaretPosition ();
@@ -392,7 +360,7 @@ public void runTest(final Context context) {
392360 if ((url != null )) {
393361 final String connectionName = URLTools .getConnectionName (url );
394362 logger .fine ("connectionName: " + connectionName );
395- final Connection conn = getConnection (connectionName );
363+ final Connection conn = DatabaseTools . getConnection (connectionName );
396364 final RealtimeReporterDao rrDao = new RealtimeReporterDao (conn );
397365 final ArrayList <String > pathList = dedupPathList (getPathList (context ));
398366 if (preferences .isUseRealtimeReporter () && rrDao .isSupported ()) {
@@ -409,7 +377,7 @@ public void runTest(final Context context) {
409377 public List <String > dependencies (final String name , final String connectionName ) {
410378 List <String > ret = null ;
411379 if (connectionName != null ) {
412- final String owner = getSchema (getConnection ( connectionName ) );
380+ final String owner = DatabaseTools . getSchema (connectionName );
413381 ret = dependencies (owner , name , connectionName );
414382 }
415383 return ret ;
@@ -418,7 +386,7 @@ public List<String> dependencies(final String name, final String connectionName)
418386 public List <String > dependencies (final String owner , final String name , final String connectionName ) {
419387 List <String > ret = null ;
420388 if (connectionName != null ) {
421- Connection conn = getConnection (connectionName );
389+ Connection conn = DatabaseTools . getConnection (connectionName );
422390 final UtplsqlDao dao = new UtplsqlDao (conn );
423391 ret = dao .includes (owner , name );
424392 }
@@ -471,7 +439,7 @@ public void codeCoverage(final Context context) {
471439 String text = ((JEditorPane ) component ).getText ();
472440 Connection conn = null ;
473441 if (preferences .isCheckRunUtplsqlTest ()) {
474- conn = getConnection (connectionName );
442+ conn = DatabaseTools . getConnection (connectionName );
475443 } else {
476444 conn = null ;
477445 }
@@ -525,7 +493,7 @@ public void generateTest(final Context context) {
525493 if (connectionName != null ) {
526494 if (Connections .getInstance ().isConnectionOpen (connectionName )) {
527495 final GenContext genContext = new GenContext ();
528- genContext .setConn (getConnection (connectionName ));
496+ genContext .setConn (DatabaseTools . getConnection (connectionName ));
529497 String text = ((JEditorPane ) component ).getText ();
530498 final UtplsqlParser parser = new UtplsqlParser (text );
531499 final int position = ((JEditorPane ) component ).getCaretPosition ();
0 commit comments