[Squirrel-sql-commits] sql12/app/src/net/sourceforge/squirrel_sql/client/session ISession.java, 1.
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2007-02-03 14:46:39
|
Update of /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv30669/app/src/net/sourceforge/squirrel_sql/client/session Modified Files: ISession.java Session.java SQLExecuterTask.java Log Message: Added support for allowing a plugin to give a new session a custom IQueryTokenizer to allow for handling SQL that works in vender tools to be used in SQuirreL. Specifically, this allows the Oracle plugin to allow functions and procedures to be properly executed without requiring the user to use the statement separator creatively. Also, support for file includes in Oracle sessions using "@" was added. Index: SQLExecuterTask.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/SQLExecuterTask.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** SQLExecuterTask.java 29 Jan 2007 01:32:00 -0000 1.31 --- SQLExecuterTask.java 3 Feb 2007 14:46:33 -0000 1.32 *************** *** 37,41 **** import javax.swing.SwingUtilities; - import net.sourceforge.squirrel_sql.client.db.dialects.DialectFactory; import net.sourceforge.squirrel_sql.client.session.event.ISQLExecutionListener; import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties; --- 37,40 ---- *************** *** 45,56 **** import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetUpdateableTableModelListener; import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel; import net.sourceforge.squirrel_sql.fw.sql.ITableInfo; - import net.sourceforge.squirrel_sql.fw.sql.QueryTokenizer; import net.sourceforge.squirrel_sql.fw.sql.SQLConnection; import net.sourceforge.squirrel_sql.fw.sql.TableInfo; - import net.sourceforge.squirrel_sql.fw.util.log.ILogger; - import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; /** --- 44,55 ---- import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetUpdateableTableModelListener; import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel; + import net.sourceforge.squirrel_sql.fw.sql.IQueryTokenizer; import net.sourceforge.squirrel_sql.fw.sql.ITableInfo; import net.sourceforge.squirrel_sql.fw.sql.SQLConnection; import net.sourceforge.squirrel_sql.fw.sql.TableInfo; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + import net.sourceforge.squirrel_sql.fw.util.log.ILogger; + import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; /** *************** *** 133,144 **** // Retrieve all the statements to execute. ! final QueryTokenizer qt = ! new QueryTokenizer( ! _sql, ! props.getSQLStatementSeparator(), ! props.getStartOfLineComment(), ! props.getRemoveMultiLineComment(), ! DialectFactory.isOracleSession(_session)); ! List queryStrings = new ArrayList(); boolean queriesFound = false; --- 132,138 ---- // Retrieve all the statements to execute. ! final IQueryTokenizer qt = _session.getQueryTokenizer(); ! qt.setScriptToTokenize(_sql); ! List queryStrings = new ArrayList(); boolean queriesFound = false; Index: ISession.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/ISession.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** ISession.java 12 Jul 2006 09:16:18 -0000 1.29 --- ISession.java 3 Feb 2007 14:46:33 -0000 1.30 *************** *** 22,45 **** import java.sql.SQLException; ! import javax.swing.*; ! ! import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier; ! import net.sourceforge.squirrel_sql.fw.id.IIdentifier; ! import net.sourceforge.squirrel_sql.fw.sql.ISQLAlias; ! import net.sourceforge.squirrel_sql.fw.sql.ISQLDriver; ! import net.sourceforge.squirrel_sql.fw.sql.SQLConnection; ! import net.sourceforge.squirrel_sql.fw.util.IMessageHandler; import net.sourceforge.squirrel_sql.client.IApplication; ! import net.sourceforge.squirrel_sql.client.gui.session.MainPanel; ! import net.sourceforge.squirrel_sql.client.gui.session.SessionPanel; import net.sourceforge.squirrel_sql.client.gui.session.BaseSessionInternalFrame; import net.sourceforge.squirrel_sql.client.gui.session.SessionInternalFrame; ! import net.sourceforge.squirrel_sql.client.gui.db.SQLAlias; ! import net.sourceforge.squirrel_sql.client.gui.db.ISQLAliasExt; import net.sourceforge.squirrel_sql.client.plugin.IPlugin; import net.sourceforge.squirrel_sql.client.session.mainpanel.IMainPanelTab; import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessor; import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties; /** --- 22,44 ---- import java.sql.SQLException; ! import javax.swing.Action; ! import javax.swing.JComponent; import net.sourceforge.squirrel_sql.client.IApplication; ! import net.sourceforge.squirrel_sql.client.gui.db.ISQLAliasExt; import net.sourceforge.squirrel_sql.client.gui.session.BaseSessionInternalFrame; + import net.sourceforge.squirrel_sql.client.gui.session.MainPanel; import net.sourceforge.squirrel_sql.client.gui.session.SessionInternalFrame; ! import net.sourceforge.squirrel_sql.client.gui.session.SessionPanel; import net.sourceforge.squirrel_sql.client.plugin.IPlugin; import net.sourceforge.squirrel_sql.client.session.mainpanel.IMainPanelTab; import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessor; import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties; + import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier; + import net.sourceforge.squirrel_sql.fw.id.IIdentifier; + import net.sourceforge.squirrel_sql.fw.sql.IQueryTokenizer; + import net.sourceforge.squirrel_sql.fw.sql.ISQLDriver; + import net.sourceforge.squirrel_sql.fw.sql.SQLConnection; + import net.sourceforge.squirrel_sql.fw.util.IMessageHandler; /** *************** *** 285,287 **** --- 284,303 ---- public boolean confirmClose(); + + /** + * Sets the IQueryTokenizer implementation to use for this session. + * + * @param tokenizer + */ + public void setQueryTokenizer(IQueryTokenizer tokenizer); + + /** + * Returns the IQueryTokenizer implementation to use for tokenizing scripts + * statements that should be sent to the server. + * + * @return an implementation of IQueryTokenizer + */ + public IQueryTokenizer getQueryTokenizer(); + + } Index: Session.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/Session.java,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** Session.java 21 Dec 2006 22:54:41 -0000 1.52 --- Session.java 3 Feb 2007 14:46:33 -0000 1.53 *************** *** 41,44 **** --- 41,46 ---- import net.sourceforge.squirrel_sql.client.IApplication; + import net.sourceforge.squirrel_sql.client.gui.db.ISQLAliasExt; + import net.sourceforge.squirrel_sql.client.gui.db.SQLAlias; import net.sourceforge.squirrel_sql.client.gui.session.BaseSessionInternalFrame; import net.sourceforge.squirrel_sql.client.gui.session.ObjectTreeInternalFrame; *************** *** 46,51 **** import net.sourceforge.squirrel_sql.client.gui.session.SessionInternalFrame; import net.sourceforge.squirrel_sql.client.gui.session.SessionPanel; - import net.sourceforge.squirrel_sql.client.gui.db.SQLAlias; - import net.sourceforge.squirrel_sql.client.gui.db.ISQLAliasExt; import net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand; import net.sourceforge.squirrel_sql.client.plugin.IPlugin; --- 48,51 ---- *************** *** 56,60 **** --- 56,63 ---- import net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo; import net.sourceforge.squirrel_sql.fw.id.IIdentifier; + import net.sourceforge.squirrel_sql.fw.persist.ValidationException; + import net.sourceforge.squirrel_sql.fw.sql.IQueryTokenizer; import net.sourceforge.squirrel_sql.fw.sql.ISQLDriver; + import net.sourceforge.squirrel_sql.fw.sql.QueryTokenizer; import net.sourceforge.squirrel_sql.fw.sql.SQLConnection; import net.sourceforge.squirrel_sql.fw.sql.SQLConnectionState; *************** *** 66,70 **** import net.sourceforge.squirrel_sql.fw.util.log.ILogger; import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; - import net.sourceforge.squirrel_sql.fw.persist.ValidationException; /** --- 69,72 ---- *************** *** 90,96 **** private SessionPanel _sessionSheet; - //JASON: What was this used for? - private boolean _sessionCreated = false; - /** The <TT>IIdentifier</TT> that uniquely identifies this object. */ private final IIdentifier _id; --- 92,95 ---- *************** *** 114,119 **** private SessionProperties _props; - // private SQLFilterClauses _sqlFilterClauses; - /** * Objects stored in session. Each entry is a <TT>Map</TT> --- 113,116 ---- *************** *** 146,149 **** --- 143,148 ---- private boolean _pluginsFinishedLoading = false; + private IQueryTokenizer tokenizer = null; + /** * Create a new session. *************** *** 210,214 **** _props = (SessionProperties)_app.getSquirrelPreferences().getSessionProperties().clone(); - // _sqlFilterClauses = new SQLFilterClauses(); _connLis = new SQLConnectionListener(); --- 209,212 ---- *************** *** 227,231 **** }); - _sessionCreated = true; } --- 225,228 ---- *************** *** 295,300 **** { getSQLConnection().commit(); ! // JASON: Wrong class name in key ! final String msg = s_stringMgr.getString("SQLPanelAPI.commit"); getMessageHandler().showMessage(msg); } --- 292,296 ---- { getSQLConnection().commit(); ! final String msg = s_stringMgr.getString("Session.commit"); getMessageHandler().showMessage(msg); } *************** *** 313,318 **** { getSQLConnection().rollback(); ! // JASON: Wrong class name in key ! final String msg = s_stringMgr.getString("SQLPanelAPI.rollback"); getMessageHandler().showMessage(msg); } --- 309,313 ---- { getSQLConnection().rollback(); ! final String msg = s_stringMgr.getString("Session.rollback"); getMessageHandler().showMessage(msg); } *************** *** 983,986 **** --- 978,1009 ---- } + /** + * Returns the IQueryTokenizer implementation to use for tokenizing scripts + * statements that should be sent to the server. + * + * @return an implementation of IQueryTokenizer + */ + public IQueryTokenizer getQueryTokenizer() { + if (tokenizer == null) { + // No tokenizer has been set by any installed plugin. Go ahead and + // give the default tokenizer. + tokenizer = new QueryTokenizer(_props.getSQLStatementSeparator(), + _props.getStartOfLineComment(), + _props.getRemoveMultiLineComment()); + } + return tokenizer; + } + + /** + * Sets the IQueryTokenizer implementation to use for this session. + * + * @param tokenizer + */ + public void setQueryTokenizer(IQueryTokenizer aTokenizer) { + if (aTokenizer != null) { + tokenizer = aTokenizer; + } + } + } |