001: /* Copyright (c) 2007, The HSQL Development Group
002: * All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, are permitted provided that the following conditions are met:
006: *
007: * Redistributions of source code must retain the above copyright notice, this
008: * list of conditions and the following disclaimer.
009: *
010: * Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * Neither the name of the HSQL Development Group nor the names of its
015: * contributors may be used to endorse or promote products derived from this
016: * software without specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
021: * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
022: * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
023: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
024: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
025: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
026: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
027: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
028: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
029: *
030: * $Id: SqltoolRB.java,v 1.7 2007/07/25 04:33:59 unsaved Exp $
031: */
032:
033: package org.hsqldb.util;
034:
035: import java.util.Map;
036: import java.util.HashMap;
037:
038: /**
039: * Resource Bundle for SqlTool and associated classes.
040: *
041: * Purpose of this class is to wrap a RefCapablePropertyResourceBundle to
042: * reliably detect any possible use of a missing property key as soon as
043: * this class is clinitted.
044: * The reason for this is to allow us developers to detect all such errors
045: * before end-users ever use this class.
046: *
047: * IMPORTANT: To add a new ResourceBundle element, add two new lines, one
048: * like <PRE>
049: * static public final int NEWKEYID = keyCounter++;
050: * </PRE> and one line <PRE>
051: * new Integer(KEY2), "key2",
052: * </PRE>
053: * Both should be inserted right after all of the other lines of the same type.
054: * NEWKEYID is obviously a new constant which you will use in calling code
055: * like SqltoolRB.NEWKEYID.
056: */
057: public class SqltoolRB extends ValidatingResourceBundle {
058: /**
059: * Does a quick test of this class.
060: */
061: static public void main(String[] sa) {
062: SqltoolRB rb1 = new SqltoolRB();
063: SqltoolRB rb2 = new SqltoolRB();
064: String[] testParams = { "one", "two", "three" };
065: rb1.validate();
066: rb2.validate();
067: System.err.println("rb1 size = " + rb1.getSize());
068: System.err.println("rb2 size = " + rb2.getSize());
069: rb1
070: .setMissingPosValueBehavior(ValidatingResourceBundle.EMPTYSTRING_BEHAVIOR);
071: rb2
072: .setMissingPosValueBehavior(ValidatingResourceBundle.NOOP_BEHAVIOR);
073:
074: /*
075: rb1.setMissingPropertyBehavior(
076: ValidatingResourceBundle.THROW_BEHAVIOR);
077: System.out.println("("
078: + rb1.getExpandedString(SqltoolRB.JDBC_ESTABLISHED) + ')');
079: */
080:
081: System.out
082: .println("First, with no positional parameters set...");
083: System.out
084: .println("JDBC_ESTABLISHED String w/ EMPTYSTRING_BEHAVIOR: "
085: + rb1.getString(SqltoolRB.JDBC_ESTABLISHED));
086: System.out.println("JDBC_ESTABLISHED String w/ NOOP_BEHAVIOR: "
087: + rb2.getString(SqltoolRB.JDBC_ESTABLISHED));
088: System.out.println("Now, with no positional values set...");
089: System.out
090: .println("JDBC_ESTABLISHED String w/ EMPTYSTRING_BEHAVIOR: "
091: + rb1.getString(SqltoolRB.JDBC_ESTABLISHED,
092: new String[] {}));
093: System.out.println("JDBC_ESTABLISHED String w/ NOOP_BEHAVIOR: "
094: + rb2.getString(SqltoolRB.JDBC_ESTABLISHED,
095: new String[] {}));
096: System.out.println();
097: System.out
098: .println("Now, with positional params set to one/two/three");
099: System.out
100: .println("JDBC_ESTABLISHED String w/ EMPTYSTRING_BEHAVIOR: "
101: + rb1.getString(SqltoolRB.JDBC_ESTABLISHED,
102: testParams));
103: System.out
104: .println("JDBC_ESTABLISHED String w/ NOOP_BEHAVIOR: "
105: + rb2.getString(SqltoolRB.JDBC_ESTABLISHED,
106: testParams));
107: rb1
108: .setMissingPosValueBehavior(RefCapablePropertyResourceBundle.THROW_BEHAVIOR);
109: System.out
110: .println("JDBC_ESTABLISHED String w/ THROW_BEHAVIOR: "
111: + rb1.getString(SqltoolRB.JDBC_ESTABLISHED,
112: testParams));
113: System.out.println();
114: System.out.println("Now, with no parameters set");
115: System.out
116: .println("JDBC_ESTABLISHED String w/ THROW_BEHAVIOR: ");
117: System.out.println(rb1.getString(SqltoolRB.JDBC_ESTABLISHED,
118: new String[] {}));
119: }
120:
121: static private int keyCounter = 0;
122: static public final int SQLTOOL_SYNTAX = keyCounter++;
123: static public final int PASSWORDFOR_PROMPT = keyCounter++;
124: static public final int SQLTOOL_VARSET_BADFORMAT = keyCounter++;
125: static public final int SQLTOOL_ABORTCONTINUE_MUTUALLYEXCLUSIVE = keyCounter++;
126: static public final int SQLTEMPFILE_FAIL = keyCounter++;
127: static public final int RCDATA_INLINEURL_MISSING = keyCounter++;
128: static public final int RCDATA_INLINE_EXTRAVARS = keyCounter++;
129: static public final int RCDATA_INLINEUSERNAME_MISSING = keyCounter++;
130: static public final int RCDATA_PASSWORD_VISIBLE = keyCounter++;
131: static public final int PASSWORD_READFAIL = keyCounter++;
132: static public final int CONNECTION_FAIL = keyCounter++;
133: static public final int RCDATA_GENFROMVALUES_FAIL = keyCounter++;
134: static public final int CONNDATA_RETRIEVAL_FAIL = keyCounter++;
135: static public final int JDBC_ESTABLISHED = keyCounter++;
136: static public final int TEMPFILE_REMOVAL_FAIL = keyCounter++;
137:
138: static public final int SQLFILE_BANNER = keyCounter++;
139: static public final int BUFFER_HELP = keyCounter++;
140: static public final int SPECIAL_HELP = keyCounter++;
141: static public final int PL_HELP = keyCounter++;
142: static public final int DSV_OPTIONS = keyCounter++;
143: static public final int D_OPTIONS = keyCounter++;
144: static public final int RAW_LEADIN = keyCounter++;
145: static public final int ERRORAT = keyCounter++;
146: static public final int REJECTREPORT_TOP = keyCounter++;
147: static public final int REJECTREPORT_ROW = keyCounter++;
148: static public final int REJECTREPORT_BOTTOM = keyCounter++;
149:
150: static public final int SQLFILE_READFAIL = keyCounter++;
151: static public final int RAWMODE_PROMPT = keyCounter++;
152: static public final int RAW_MOVEDTOBUFFER = keyCounter++;
153: static public final int INPUT_MOVEDTOBUFFER = keyCounter++;
154: static public final int SQLSTATEMENT_EMPTY = keyCounter++;
155: static public final int CAUSEREPORT = keyCounter++;
156: static public final int BREAK_UNSATISFIED = keyCounter++;
157: static public final int CONTINUE_UNSATISFIED = keyCounter++;
158: static public final int PRIMARYINPUT_ACCESSFAIL = keyCounter++;
159: static public final int INPUT_UNTERMINATED = keyCounter++;
160: static public final int PLVAR_SET_INCOMPLETE = keyCounter++;
161: static public final int ABORTING = keyCounter++;
162: static public final int INPUTREADER_CLOSEFAIL = keyCounter++;
163: static public final int ROLLINGBACK = keyCounter++;
164: static public final int SPECIAL_UNSPECIFIED = keyCounter++;
165: static public final int BUFHIST_UNSPECIFIED = keyCounter++;
166: static public final int BUFFER_EXECUTING = keyCounter++;
167: static public final int NOBUFFER_YET = keyCounter++;
168: static public final int COMMANDNUM_MALFORMAT = keyCounter++;
169: static public final int BUFFER_RESTORED = keyCounter++;
170: static public final int SUBSTITUTION_MALFORMAT = keyCounter++;
171: static public final int SUBSTITUTION_NOMATCH = keyCounter++;
172: static public final int SUBSTITUTION_SYNTAX = keyCounter++;
173: static public final int BUFFER_UNKNOWN = keyCounter++;
174: static public final int SPECIAL_EXTRACHARS = keyCounter++;
175: static public final int BUFFER_EXTRACHARS = keyCounter++;
176: static public final int SPECIAL_MALFORMAT = keyCounter++;
177: static public final int HTML_MODE = keyCounter++;
178: static public final int DSV_TARGETFILE_DEMAND = keyCounter++;
179: static public final int FILE_WROTECHARS = keyCounter++;
180: static public final int FILE_WRITEFAIL = keyCounter++;
181: static public final int SPECIAL_D_LIKE = keyCounter++;
182: static public final int OUTPUTFILE_NONETOCLOSE = keyCounter++;
183: static public final int OUTPUTFILE_REOPENING = keyCounter++;
184: static public final int OUTPUTFILE_HEADER = keyCounter++;
185: static public final int DESTFILE_DEMAND = keyCounter++;
186: static public final int BUFFER_EMPTY = keyCounter++;
187: static public final int FILE_APPENDFAIL = keyCounter++;
188: static public final int SQLFILE_NAME_DEMAND = keyCounter++;
189: static public final int SQLFILE_EXECUTE_FAIL = keyCounter++;
190: static public final int A_SETTING = keyCounter++;
191: static public final int COMMITTED = keyCounter++;
192: static public final int SPECIAL_B_MALFORMAT = keyCounter++;
193: static public final int BINARY_LOADEDBYTESINTO = keyCounter++;
194: static public final int BINARY_FILEFAIL = keyCounter++;
195: static public final int C_SETTING = keyCounter++;
196: static public final int BANG_INCOMPLETE = keyCounter++;
197: static public final int BANG_COMMAND_FAIL = keyCounter++;
198: static public final int SPECIAL_UNKNOWN = keyCounter++;
199: static public final int DSV_M_SYNTAX = keyCounter++;
200: static public final int DSV_X_SYNTAX = keyCounter++;
201: static public final int RAW_EMPTY = keyCounter++;
202: static public final int DSV_NOCOLSLEFT = keyCounter++;
203: static public final int DSV_SKIPCOLS_MISSING = keyCounter++;
204: static public final int PLALIAS_MALFORMAT = keyCounter++;
205: static public final int PLVAR_UNDEFINED = keyCounter++;
206: static public final int SYSPROP_EMPTY = keyCounter++;
207: static public final int SYSPROP_UNTERMINATED = keyCounter++;
208: static public final int SYSPROP_UNDEFINED = keyCounter++;
209: static public final int VAR_INFINITE = keyCounter++;
210: static public final int PLVAR_NAMEEMPTY = keyCounter++;
211: static public final int PLVAR_UNTERMINATED = keyCounter++;
212: static public final int PL_MALFORMAT = keyCounter++;
213: static public final int PL_EXPANSIONMODE = keyCounter++;
214: static public final int END_NOBLOCK = keyCounter++;
215: static public final int CONTINUE_SYNTAX = keyCounter++;
216: static public final int BREAK_SYNTAX = keyCounter++;
217: static public final int PL_LIST_PARENS = keyCounter++;
218: static public final int PL_LIST_LENGTHS = keyCounter++;
219: static public final int DUMPLOAD_MALFORMAT = keyCounter++;
220: static public final int PLVAR_NOCOLON = keyCounter++;
221: static public final int PLVAR_TILDEDASH_NOMOREARGS = keyCounter++;
222: static public final int DUMPLOAD_FAIL = keyCounter++;
223: static public final int PREPARE_MALFORMAT = keyCounter++;
224: static public final int FOREACH_MALFORMAT = keyCounter++;
225: static public final int PL_TEMPFILE_FAIL = keyCounter++;
226: static public final int PL_BLOCK_FAIL = keyCounter++;
227: static public final int IFWHILE_MALFORMAT = keyCounter++;
228: static public final int IF_MALFORMAT = keyCounter++;
229: static public final int WHILE_MALFORMAT = keyCounter++;
230: static public final int PL_UNKNOWN = keyCounter++;
231: static public final int PL_BLOCK_UNTERMINATED = keyCounter++;
232: static public final int END_SYNTAX = keyCounter++;
233: static public final int VENDOR_ORACLE_DS = keyCounter++;
234: static public final int VENDOR_DERBY_DR = keyCounter++;
235: static public final int VENDOR_NOSUP_D = keyCounter++;
236: static public final int VENDOR_DERBY_DU = keyCounter++;
237: static public final int SPECIAL_D_UNKNOWN = keyCounter++;
238: static public final int METADATA_FETCH_FAIL = keyCounter++;
239: static public final int METADATA_FETCH_FAILFOR = keyCounter++;
240: static public final int PREPARE_DEMANDQM = keyCounter++;
241: static public final int BINBUFFER_EMPTY = keyCounter++;
242: static public final int VENDOR_NOSUP_SYSSCHEMAS = keyCounter++;
243: static public final int NORESULT = keyCounter++;
244: static public final int DSV_BINCOL = keyCounter++;
245: static public final int BINBUF_WRITE = keyCounter++;
246: static public final int ROWS_FETCHED = keyCounter++;
247: static public final int ROWS_FETCHED_DSV = keyCounter++;
248: static public final int ROW_UPDATE_SINGULAR = keyCounter++;
249: static public final int ROW_UPDATE_MULTIPLE = keyCounter++;
250: static public final int HISTORY_UNAVAILABLE = keyCounter++;
251: static public final int HISTORY_NONE = keyCounter++;
252: static public final int EDITBUFFER_CONTENTS = keyCounter++;
253: static public final int BUFFER_INSTRUCTIONS = keyCounter++;
254: static public final int HISTORY_NUMBER_REQ = keyCounter++;
255: static public final int HISTORY_BACKTO = keyCounter++;
256: static public final int HISTORY_UPTO = keyCounter++;
257: static public final int HISTORY_BACK = keyCounter++;
258: static public final int DESCRIBE_TABLE_NAME = keyCounter++;
259: static public final int DESCRIBE_TABLE_DATATYPE = keyCounter++;
260: static public final int DESCRIBE_TABLE_WIDTH = keyCounter++;
261: static public final int DESCRIBE_TABLE_NONULLS = keyCounter++;
262: static public final int LOGICAL_UNRECOGNIZED = keyCounter++;
263: static public final int READ_TOOBIG = keyCounter++;
264: static public final int READ_PARTIAL = keyCounter++;
265: static public final int READ_CONVERTFAIL = keyCounter++;
266: static public final int DSV_COLDELIM_PRESENT = keyCounter++;
267: static public final int DSV_ROWDELIM_PRESENT = keyCounter++;
268: static public final int DSV_NULLREP_PRESENT = keyCounter++;
269: static public final int DSV_CONSTCOLS_NULLCOL = keyCounter++;
270: static public final int FILE_READFAIL = keyCounter++;
271: static public final int INPUTFILE_CLOSEFAIL = keyCounter++;
272: static public final int DSV_HEADER_NONE = keyCounter++;
273: static public final int DSV_HEADER_NOSWITCHTARG = keyCounter++;
274: static public final int DSV_HEADER_NOSWITCHMATCH = keyCounter++;
275: static public final int DSV_HEADER_NONSWITCHED = keyCounter++;
276: static public final int DSV_NOCOLHEADER = keyCounter++;
277: static public final int DSV_METADATA_MISMATCH = keyCounter++;
278: static public final int QUERY_METADATAFAIL = keyCounter++;
279: static public final int DSV_REJECTFILE_SETUPFAIL = keyCounter++;
280: static public final int DSV_REJECTREPORT_SETUPFAIL = keyCounter++;
281: static public final int NONE = keyCounter++;
282: static public final int INSERTION_PREPAREFAIL = keyCounter++;
283: static public final int DSV_HEADER_MATCHERNONHEAD = keyCounter++;
284: static public final int DSV_COLCOUNT_MISMATCH = keyCounter++;
285: static public final int DSV_INSERTCOL_MISMATCH = keyCounter++;
286: static public final int TIME_BAD = keyCounter++;
287: static public final int BOOLEAN_BAD = keyCounter++;
288: static public final int INPUTREC_MODIFIED = keyCounter++;
289: static public final int DSV_RECIN_FAIL = keyCounter++;
290: static public final int DSV_IMPORT_SUMMARY = keyCounter++;
291: static public final int INSERTIONS_NOTCOMMITTED = keyCounter++;
292: static public final int AUTOCOMMIT_FETCHFAIL = keyCounter++;
293: static public final int DSV_REJECTFILE_PURGEFAIL = keyCounter++;
294: static public final int DSV_REJECTREPORT_PURGEFAIL = keyCounter++;
295: static public final int EDIT_MALFORMAT = keyCounter++;
296:
297: private static Object[] memberKeyArray = new Object[] {
298: /* With Java 5, can use auto-boxing and get rid of all of the
299: * Integer instantiations below.*/
300: // SqlTool class, file references:
301: new Integer(SQLTOOL_SYNTAX),
302: "SqlTool.syntax",
303: // SqlTool inline properties:
304: new Integer(PASSWORDFOR_PROMPT),
305: "passwordFor.prompt",
306: new Integer(SQLTOOL_VARSET_BADFORMAT),
307: "SqlTool.varset.badformat",
308: new Integer(SQLTOOL_ABORTCONTINUE_MUTUALLYEXCLUSIVE),
309: "SqlTool.abort_continue.mutuallyexclusive",
310: new Integer(SQLTEMPFILE_FAIL),
311: "sqltempfile.fail",
312: new Integer(RCDATA_INLINEURL_MISSING),
313: "rcdata.inlineurl.missing",
314: new Integer(RCDATA_INLINE_EXTRAVARS),
315: "rcdata.inline.extravars",
316: new Integer(RCDATA_INLINEUSERNAME_MISSING),
317: "rcdata.inlineusername.missing",
318: new Integer(RCDATA_PASSWORD_VISIBLE),
319: "rcdata.password.visible",
320: new Integer(PASSWORD_READFAIL),
321: "password.readfail",
322: new Integer(CONNECTION_FAIL),
323: "connection.fail",
324: new Integer(RCDATA_GENFROMVALUES_FAIL),
325: "rcdata.genfromvalues.fail",
326: new Integer(CONNDATA_RETRIEVAL_FAIL),
327: "conndata.retrieval.fail",
328: new Integer(JDBC_ESTABLISHED),
329: "jdbc.established",
330: new Integer(TEMPFILE_REMOVAL_FAIL),
331: "tempfile.removal.fail",
332:
333: // SqlFile class, file references:
334: new Integer(SQLFILE_BANNER),
335: "SqlFile.banner",
336: new Integer(BUFFER_HELP),
337: "buffer.help",
338: new Integer(SPECIAL_HELP),
339: "special.help",
340: new Integer(PL_HELP),
341: "pl.help",
342: new Integer(DSV_OPTIONS),
343: "dsv.options",
344: new Integer(D_OPTIONS),
345: "d.options",
346: new Integer(RAW_LEADIN),
347: "raw.leadin",
348: new Integer(ERRORAT),
349: "errorat",
350: new Integer(REJECTREPORT_TOP),
351: "rejectreport.top",
352: new Integer(REJECTREPORT_ROW),
353: "rejectreport.row",
354: new Integer(REJECTREPORT_BOTTOM),
355: "rejectreport.bottom",
356:
357: // SqlFile inline properties:
358: new Integer(SQLFILE_READFAIL), "sqlfile.readfail",
359: new Integer(RAWMODE_PROMPT), "rawmode.prompt",
360: new Integer(RAW_MOVEDTOBUFFER), "raw.movedtobuffer",
361: new Integer(INPUT_MOVEDTOBUFFER), "input.movedtobuffer",
362: new Integer(SQLSTATEMENT_EMPTY), "sqlstatement.empty",
363: new Integer(CAUSEREPORT), "causereport",
364: new Integer(BREAK_UNSATISFIED), "break.unsatisfied",
365: new Integer(CONTINUE_UNSATISFIED), "continue.unsatisfied",
366: new Integer(PRIMARYINPUT_ACCESSFAIL),
367: "primaryinput.accessfail", new Integer(INPUT_UNTERMINATED),
368: "input.unterminated", new Integer(PLVAR_SET_INCOMPLETE),
369: "plvar.set.incomplete", new Integer(ABORTING), "aborting",
370: new Integer(INPUTREADER_CLOSEFAIL),
371: "inputreader.closefail", new Integer(ROLLINGBACK),
372: "rollingback", new Integer(SPECIAL_UNSPECIFIED),
373: "special.unspecified", new Integer(BUFHIST_UNSPECIFIED),
374: "bufhist.unspecified", new Integer(BUFFER_EXECUTING),
375: "buffer.executing", new Integer(NOBUFFER_YET),
376: "nobuffer.yet", new Integer(COMMANDNUM_MALFORMAT),
377: "commandnum.malformat", new Integer(BUFFER_RESTORED),
378: "buffer.restored", new Integer(SUBSTITUTION_MALFORMAT),
379: "substitution.malformat",
380: new Integer(SUBSTITUTION_NOMATCH), "substitution.nomatch",
381: new Integer(SUBSTITUTION_SYNTAX), "substitution.syntax",
382: new Integer(BUFFER_UNKNOWN), "buffer.unknown",
383: new Integer(SPECIAL_EXTRACHARS), "special.extrachars",
384: new Integer(BUFFER_EXTRACHARS), "buffer.extrachars",
385: new Integer(SPECIAL_MALFORMAT), "special.malformat",
386: new Integer(HTML_MODE), "html.mode",
387: new Integer(DSV_TARGETFILE_DEMAND),
388: "dsv.targetfile.demand", new Integer(FILE_WROTECHARS),
389: "file.wrotechars", new Integer(FILE_WRITEFAIL),
390: "file.writefail", new Integer(SPECIAL_D_LIKE),
391: "special.d.like", new Integer(OUTPUTFILE_NONETOCLOSE),
392: "outputfile.nonetoclose",
393: new Integer(OUTPUTFILE_REOPENING), "outputfile.reopening",
394: new Integer(OUTPUTFILE_HEADER), "outputfile.header",
395: new Integer(DESTFILE_DEMAND), "destfile.demand",
396: new Integer(BUFFER_EMPTY), "buffer.empty",
397: new Integer(FILE_APPENDFAIL), "file.appendfail",
398: new Integer(SQLFILE_NAME_DEMAND), "sqlfile.name.demand",
399: new Integer(SQLFILE_EXECUTE_FAIL), "sqlfile.execute.fail",
400: new Integer(A_SETTING), "a.setting",
401: new Integer(COMMITTED), "committed",
402: new Integer(SPECIAL_B_MALFORMAT), "special.b.malformat",
403: new Integer(BINARY_LOADEDBYTESINTO),
404: "binary.loadedbytesinto", new Integer(BINARY_FILEFAIL),
405: "binary.filefail", new Integer(C_SETTING), "c.setting",
406: new Integer(BANG_INCOMPLETE), "bang.incomplete",
407: new Integer(BANG_COMMAND_FAIL), "bang.command.fail",
408: new Integer(SPECIAL_UNKNOWN), "special.unknown",
409: new Integer(DSV_M_SYNTAX), "dsv.m.syntax",
410: new Integer(DSV_X_SYNTAX), "dsv.x.syntax",
411: new Integer(RAW_EMPTY), "raw.empty",
412: new Integer(DSV_NOCOLSLEFT), "dsv.nocolsleft",
413: new Integer(DSV_SKIPCOLS_MISSING), "dsv.skipcols.missing",
414: new Integer(PLALIAS_MALFORMAT), "plalias.malformat",
415: new Integer(PLVAR_UNDEFINED), "plvar.undefined",
416: new Integer(SYSPROP_EMPTY), "sysprop.empty",
417: new Integer(SYSPROP_UNTERMINATED), "sysprop.unterminated",
418: new Integer(SYSPROP_UNDEFINED), "sysprop.undefined",
419: new Integer(VAR_INFINITE), "var.infinite",
420: new Integer(PLVAR_NAMEEMPTY), "plvar.nameempty",
421: new Integer(PLVAR_UNTERMINATED), "plvar.unterminated",
422: new Integer(PL_MALFORMAT), "pl.malformat",
423: new Integer(PL_EXPANSIONMODE), "pl.expansionmode",
424: new Integer(END_NOBLOCK), "end.noblock",
425: new Integer(CONTINUE_SYNTAX), "continue.syntax",
426: new Integer(BREAK_SYNTAX), "break.syntax",
427: new Integer(PL_LIST_PARENS), "pl.list.parens",
428: new Integer(PL_LIST_LENGTHS), "pl.list.lengths",
429: new Integer(DUMPLOAD_MALFORMAT), "dumpload.malformat",
430: new Integer(PLVAR_NOCOLON), "plvar.nocolon",
431: new Integer(PLVAR_TILDEDASH_NOMOREARGS),
432: "plvar.tildedash.nomoreargs", new Integer(DUMPLOAD_FAIL),
433: "dumpload.fail", new Integer(PREPARE_MALFORMAT),
434: "prepare.malformat", new Integer(FOREACH_MALFORMAT),
435: "foreach.malformat", new Integer(PL_TEMPFILE_FAIL),
436: "pl.tempfile.fail", new Integer(PL_BLOCK_FAIL),
437: "pl.block.fail", new Integer(IFWHILE_MALFORMAT),
438: "ifwhile.malformat", new Integer(IF_MALFORMAT),
439: "if.malformat", new Integer(WHILE_MALFORMAT),
440: "while.malformat", new Integer(PL_UNKNOWN), "pl.unknown",
441: new Integer(PL_BLOCK_UNTERMINATED),
442: "pl.block.unterminated", new Integer(END_SYNTAX),
443: "end.syntax", new Integer(VENDOR_ORACLE_DS),
444: "vendor.oracle.dS", new Integer(VENDOR_DERBY_DR),
445: "vendor.derby.dr", new Integer(VENDOR_NOSUP_D),
446: "vendor.nosup.d", new Integer(VENDOR_DERBY_DU),
447: "vendor.derby.du", new Integer(SPECIAL_D_UNKNOWN),
448: "special.d.unknown", new Integer(METADATA_FETCH_FAIL),
449: "metadata.fetch.fail", new Integer(METADATA_FETCH_FAILFOR),
450: "metadata.fetch.failfor", new Integer(PREPARE_DEMANDQM),
451: "prepare.demandqm", new Integer(BINBUFFER_EMPTY),
452: "binbuffer.empty", new Integer(VENDOR_NOSUP_SYSSCHEMAS),
453: "vendor.nosup.sysschemas", new Integer(NORESULT),
454: "noresult", new Integer(DSV_BINCOL), "dsv.bincol",
455: new Integer(BINBUF_WRITE), "binbuf.write",
456: new Integer(ROWS_FETCHED), "rows.fetched",
457: new Integer(ROWS_FETCHED_DSV), "rows.fetched.dsv",
458: new Integer(ROW_UPDATE_SINGULAR), "row.update.singular",
459: new Integer(ROW_UPDATE_MULTIPLE), "row.update.multiple",
460: new Integer(HISTORY_UNAVAILABLE), "history.unavailable",
461: new Integer(HISTORY_NONE), "history.none",
462: new Integer(EDITBUFFER_CONTENTS), "editbuffer.contents",
463: new Integer(BUFFER_INSTRUCTIONS), "buffer.instructions",
464: new Integer(HISTORY_NUMBER_REQ), "history.number.req",
465: new Integer(HISTORY_BACKTO), "history.backto",
466: new Integer(HISTORY_UPTO), "history.upto",
467: new Integer(HISTORY_BACK), "history.back",
468: new Integer(DESCRIBE_TABLE_NAME), "describe.table.name",
469: new Integer(DESCRIBE_TABLE_DATATYPE),
470: "describe.table.datatype",
471: new Integer(DESCRIBE_TABLE_WIDTH), "describe.table.width",
472: new Integer(DESCRIBE_TABLE_NONULLS),
473: "describe.table.nonulls",
474: new Integer(LOGICAL_UNRECOGNIZED), "logical.unrecognized",
475: new Integer(READ_TOOBIG), "read.toobig",
476: new Integer(READ_PARTIAL), "read.partial",
477: new Integer(READ_CONVERTFAIL), "read.convertfail",
478: new Integer(DSV_COLDELIM_PRESENT), "dsv.coldelim.present",
479: new Integer(DSV_ROWDELIM_PRESENT), "dsv.rowdelim.present",
480: new Integer(DSV_NULLREP_PRESENT), "dsv.nullrep.present",
481: new Integer(DSV_CONSTCOLS_NULLCOL),
482: "dsv.constcols.nullcol", new Integer(FILE_READFAIL),
483: "file.readfail", new Integer(INPUTFILE_CLOSEFAIL),
484: "inputfile.closefail", new Integer(DSV_HEADER_NONE),
485: "dsv.header.none", new Integer(DSV_HEADER_NOSWITCHTARG),
486: "dsv.header.noswitchtarg",
487: new Integer(DSV_HEADER_NOSWITCHMATCH),
488: "dsv.header.noswitchmatch",
489: new Integer(DSV_HEADER_NONSWITCHED),
490: "dsv.header.nonswitched", new Integer(DSV_NOCOLHEADER),
491: "dsv.nocolheader", new Integer(DSV_METADATA_MISMATCH),
492: "dsv.metadata.mismatch", new Integer(QUERY_METADATAFAIL),
493: "query.metadatafail",
494: new Integer(DSV_REJECTFILE_SETUPFAIL),
495: "dsv.rejectfile.setupfail",
496: new Integer(DSV_REJECTREPORT_SETUPFAIL),
497: "dsv.rejectreport.setupfail", new Integer(NONE), "none",
498: new Integer(INSERTION_PREPAREFAIL),
499: "insertion.preparefail",
500: new Integer(DSV_HEADER_MATCHERNONHEAD),
501: "dsv.header.matchernonhead",
502: new Integer(DSV_COLCOUNT_MISMATCH),
503: "dsv.colcount.mismatch",
504: new Integer(DSV_INSERTCOL_MISMATCH),
505: "dsv.insertcol.mismatch", new Integer(TIME_BAD),
506: "time.bad", new Integer(BOOLEAN_BAD), "boolean.bad",
507: new Integer(INPUTREC_MODIFIED), "inputrec.modified",
508: new Integer(DSV_RECIN_FAIL), "dsv.recin.fail",
509: new Integer(DSV_IMPORT_SUMMARY), "dsv.import.summary",
510: new Integer(INSERTIONS_NOTCOMMITTED),
511: "insertions.notcommitted",
512: new Integer(AUTOCOMMIT_FETCHFAIL), "autocommit.fetchfail",
513: new Integer(DSV_REJECTFILE_PURGEFAIL),
514: "dsv.rejectfile.purgefail",
515: new Integer(DSV_REJECTREPORT_PURGEFAIL),
516: "dsv.rejectreport.purgefail", new Integer(EDIT_MALFORMAT),
517: "edit.malformat", };
518:
519: private Map keyIdToString = new HashMap();
520:
521: protected Map getKeyIdToString() {
522: return keyIdToString;
523: }
524:
525: public SqltoolRB() {
526: super ("org.hsqldb.util.sqltool");
527: if (memberKeyArray == null)
528: throw new RuntimeException("'static memberKeyArray not set");
529: for (int i = 0; i < memberKeyArray.length; i += 2) {
530: keyIdToString.put(memberKeyArray[i], memberKeyArray[i + 1]);
531: }
532: }
533:
534: static {
535: if (memberKeyArray == null)
536: throw new RuntimeException("'static memberKeyArray not set");
537: if (memberKeyArray.length % 2 != 0)
538: throw new RuntimeException(
539: "memberKeyArray has an odd length");
540: for (int i = 0; i < memberKeyArray.length; i += 2) {
541: if (!(memberKeyArray[i] instanceof Integer))
542: throw new RuntimeException(
543: "Element #"
544: + i
545: + " ("
546: + ((i - 1 < 0) ? "first item"
547: : ("after item \""
548: + memberKeyArray[i - 1] + "\""))
549: + ") is a "
550: + memberKeyArray[i].getClass()
551: .getName()
552: + ", not an Integer, in memberKeyArray in class "
553: + SqltoolRB.class.getName());
554: if (!(memberKeyArray[i + 1] instanceof String))
555: throw new RuntimeException(
556: "Element #"
557: + (i + 1)
558: + " ("
559: + ((i - 2 < 0) ? "first item"
560: : ("after item \""
561: + memberKeyArray[i - 1] + "\""))
562: + ") is a "
563: + memberKeyArray[i + 1].getClass()
564: .getName()
565: + ", not a String, in memberKeyArray in class "
566: + SqltoolRB.class.getName());
567: if (((Integer) memberKeyArray[i]).intValue() != i / 2)
568: throw new RuntimeException("Element #" + i
569: + " is wrong constant for item "
570: + memberKeyArray[i + 1]
571: + " in memberKeyArray in class "
572: + SqltoolRB.class.getName());
573: }
574: /* DEBUG
575: System.err.println("Initialized keyIdToString map with "
576: + keyIdToString.size() + " mappings");
577: */
578: }
579: }
|