KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > smallsql > database > CommandDrop


1 /* =============================================================
2  * SmallSQL : a free Java DBMS library for the Java(tm) platform
3  * =============================================================
4  *
5  * (C) Copyright 2004-2006, by Volker Berlin.
6  *
7  * Project Info: http://www.smallsql.de/
8  *
9  * 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
37
38 public class CommandDrop extends Command {
39
40     CommandDrop( Logger log, String JavaDoc catalog, String JavaDoc 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 JavaDoc {
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 Utils.createSQLException("Database '" + name + "' does not exists.");
56                 File files[] = dir.listFiles();
57                 if(files != null)
58                     for(int i=0; i<files.length; i++){
59                         files[i].delete();
60                     }
61                 dir.delete();
62                 break;
63             case SQLTokenizer.TABLE:
64                 Database.dropTable( con, catalog, name );
65                 break;
66             case SQLTokenizer.VIEW:
67                 Database.dropView( con, catalog, name );
68                 break;
69             case SQLTokenizer.INDEX:
70             case SQLTokenizer.PROCEDURE:
71                 throw new java.lang.UnsupportedOperationException JavaDoc();
72             default:
73                 throw new Error JavaDoc();
74         }
75     }
76 }
Popular Tags