01: package net.sourceforge.squirrel_sql.fw.sql;
02:
03: /**
04: * This should be implemented to provide script tokenizing behavior that is
05: * specific to a database.
06: *
07: * @author rmmannin
08: */
09: public interface IQueryTokenizer {
10:
11: /**
12: * Returns a boolean value indicating whether or not there are more
13: * statements to be sent to the server.
14: *
15: * @return true if nextQuery can be called to get the next statement;
16: * false otherwise.
17: */
18: boolean hasQuery();
19:
20: /**
21: * Returns the next statement, or null if there are no more statements to
22: * get.
23: *
24: * @return the next statement or null if there is no next statement.
25: */
26: String nextQuery();
27:
28: /**
29: * Sets the script to be tokenized into one or more queries that should be
30: * sent to the database. Query here means statement, so this includes more
31: * than just select statements.
32: *
33: * @param script a string representing one or more SQL statements.
34: */
35: void setScriptToTokenize(String script);
36:
37: /**
38: * Returns the number of queries that the tokenizer found in the script
39: * given in the last call to setScriptToTokenize, or 0 if
40: * setScriptToTokenize has not yet been called.
41: */
42: int getQueryCount();
43:
44: /**
45: * Returns the statement separator being used for this session. This may be
46: * the user's preference, or in the case of a plugin that provides a custom
47: * IQueryTokenizer implementation, this will be the plugin-specific setting
48: * which is also configurable.
49: *
50: * @return the string of characters representing a delimiter between multiple
51: * statements.
52: */
53: String getSQLStatementSeparator();
54:
55: /**
56: * Returns the string that identifies a line comment.
57: *
58: * @return the start of line comment
59: */
60: String getLineCommentBegin();
61:
62: /**
63: * Returns whether or not the query tokenizer should remove multi-line
64: * comments from the statements while tokenizing them.
65: *
66: * @return true if remove; falso otherwise.
67: */
68: boolean isRemoveMultiLineComment();
69: }
|