01: /* =============================================================
02: * SmallSQL : a free Java DBMS library for the Java(tm) platform
03: * =============================================================
04: *
05: * (C) Copyright 2004-2007, by Volker Berlin.
06: *
07: * Project Info: http://www.smallsql.de/
08: *
09: * This library is free software; you can redistribute it and/or modify it
10: * under the terms of the GNU Lesser General Public License as published by
11: * the Free Software Foundation; either version 2.1 of the License, or
12: * (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful, but
15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17: * License for more details.
18: *
19: * You should have received a copy of the GNU Lesser General Public
20: * License along with this library; if not, write to the Free Software
21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22: * USA.
23: *
24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25: * in the United States and other countries.]
26: *
27: * ---------------
28: * CommandDrop.java
29: * ---------------
30: * Author: Volker Berlin
31: *
32: */
33: package smallsql.database;
34:
35: import java.io.*;
36: import smallsql.database.language.Language;
37:
38: public class CommandDrop extends Command {
39:
40: CommandDrop(Logger log, String catalog, String name, int type) {
41: super (log);
42: this .type = type;
43: this .catalog = catalog;
44: this .name = name;
45: }
46:
47: void executeImpl(SSConnection con, SSStatement st) throws Exception {
48: switch (type) {
49: case SQLTokenizer.DATABASE:
50: if (name.startsWith("file:"))
51: name = name.substring(5);
52: File dir = new File(name);
53: if (!dir.isDirectory()
54: || !new File(dir, Utils.MASTER_FILENAME).exists())
55: throw SmallSQLException.create(Language.DB_NONEXISTENT,
56: name);
57: File files[] = dir.listFiles();
58: if (files != null)
59: for (int i = 0; i < files.length; i++) {
60: files[i].delete();
61: }
62: dir.delete();
63: break;
64: case SQLTokenizer.TABLE:
65: Database.dropTable(con, catalog, name);
66: break;
67: case SQLTokenizer.VIEW:
68: Database.dropView(con, catalog, name);
69: break;
70: case SQLTokenizer.INDEX:
71: case SQLTokenizer.PROCEDURE:
72: throw new java.lang.UnsupportedOperationException();
73: default:
74: throw new Error();
75: }
76: }
77: }
|