in HSQL/src/org/hsqldb1/lib/RCData.java [95:222]
public RCData(File file, String dbKey) throws Exception {
if (file == null) {
throw new IllegalArgumentException("RC file name not specified");
}
if (!file.canRead()) {
throw new IOException("Please set up authentication file '" + file
+ "'");
}
// System.err.println("Using RC file '" + file + "'");
StringTokenizer tokenizer = null;
boolean thisone = false;
String s;
String keyword, value;
int linenum = 0;
BufferedReader br = new BufferedReader(new FileReader(file));
while ((s = br.readLine()) != null) {
++linenum;
s = s.trim();
if (s.length() == 0) {
continue;
}
if (s.charAt(0) == '#') {
continue;
}
tokenizer = new StringTokenizer(s);
if (tokenizer.countTokens() == 1) {
keyword = tokenizer.nextToken();
value = "";
} else if (tokenizer.countTokens() > 1) {
keyword = tokenizer.nextToken();
value = tokenizer.nextToken("").trim();
} else {
try {
br.close();
} catch (IOException e) {
// Can only report on so many errors at one time
}
throw new Exception("Corrupt line " + linenum + " in '" + file
+ "': " + s);
}
if (dbKey == null) {
if (keyword.equals("urlid")) {
System.out.println(value);
}
continue;
}
if (keyword.equals("urlid")) {
if (value.equals(dbKey)) {
if (id == null) {
id = dbKey;
thisone = true;
} else {
try {
br.close();
} catch (IOException e) {
// Can only report on so many errors at one time
}
throw new Exception("Key '" + dbKey + " redefined at"
+ " line " + linenum + " in '"
+ file);
}
} else {
thisone = false;
}
continue;
}
if (thisone) {
if (keyword.equals("url")) {
url = value;
} else if (keyword.equals("username")) {
username = value;
} else if (keyword.equals("driver")) {
driver = value;
} else if (keyword.equals("charset")) {
charset = value;
} else if (keyword.equals("truststore")) {
truststore = value;
} else if (keyword.equals("password")) {
password = value;
} else if (keyword.equals("transiso")) {
ti = value;
} else if (keyword.equals("libpath")) {
libpath = value;
} else {
try {
br.close();
} catch (IOException e) {
// Can only report on so many errors at one time
}
throw new Exception("Bad line " + linenum + " in '" + file
+ "': " + s);
}
}
}
br.close();
if (dbKey == null) {
return;
}
if (url == null) {
throw new Exception("url not set " + "for '" + dbKey
+ "' in file '" + file + "'");
}
if (libpath != null) {
throw new IllegalArgumentException(
"Sorry, 'libpath' not supported yet");
}
}