-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDavisBase.java
More file actions
166 lines (131 loc) · 3.76 KB
/
DavisBase.java
File metadata and controls
166 lines (131 loc) · 3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
package database;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class DavisBase {
static Scanner scanner = new Scanner(System.in).useDelimiter(";");
static String currentDB = "user_data";
public static void main(String[] args) {
initializeDB();
System.out.println(
"---------------------------------------------------------------------");
System.out.println("Welcome to DavisBase");
System.out.println(
"---------------------------------------------------------------------");
String query = "";
while (!query.equals("exit"))
{
System.out.print("davissql> ");
query = scanner.next().replace("\n", " ").replace("\r", "");
query = query.trim().toLowerCase();
QueryHandler.parse(query);
}
System.out.println("Exiting from DavisBase");
}
public static void initializeDB()
{
try {
File data = new File("data");
if (!data.exists()) {
data.mkdir();
System.out.println("Folder 'data' not yet created, creating 'data' folder ");
}
File catalog = new File("data//catalog");
if (catalog.mkdir()) {
System.out.println("Folder 'data//catalog' not yet created, Initializing catalog!");
Commands.initializeDataStore();
}
else {
boolean catalog1 = false;
boolean catalog2 =false;
String catalog_columns = "davisbase_columns.tbl";
String catalog_tables = "davisbase_tables.tbl";
String[] catalogList = catalog.list();
for (int i = 0; i < catalogList.length; i++) {
if (catalogList[i].equals(catalog_columns))
catalog1 = true;
}
if (!catalog1) {
System.out.println(
"Table 'davisbase_columns.tbl' not yet created, initializing davisbase_columns");
System.out.println();
Commands.initializeDataStore();
}
for (int i = 0; i < catalogList.length; i++) {
if (catalogList[i].equals(catalog_tables))
catalog2 = true;
}
if (!catalog2) {
System.out.println(
"Table 'davisbase_tables.tbl' not yet created, initializing davisbase_tables");
System.out.println();
Commands.initializeDataStore();
}
}
} catch (SecurityException se) {
System.out.println("Application catalog not created " + se);
}
}
// Check if the table exists
public static boolean tableExist(String table) {
boolean tableexists = false;
try {
File userdatafolder = new File("data//user_data");
if (userdatafolder.mkdir()) {
System.out.println("Folder 'data//user_data' not yet created, Initializing user_data!");
}
String[] usertables;
usertables = userdatafolder.list();
for (int i = 0; i < usertables.length; i++) {
if (usertables[i].equals(table))
return true;
}
} catch (SecurityException se) {
System.out.println("Unable to create data container directory" + se);
}
return tableexists;
}
public static String[] parserEquation(String equ)
{
String cmp[] = new String[3];
String temp[] = new String[2];
if (equ.contains("=")) {
temp = equ.split("=");
cmp[0] = temp[0].trim();
cmp[1] = "=";
cmp[2] = temp[1].trim();
}
if (equ.contains(">")) {
temp = equ.split(">");
cmp[0] = temp[0].trim();
cmp[1] = ">";
cmp[2] = temp[1].trim();
}
if (equ.contains("<")) {
temp = equ.split("<");
cmp[0] = temp[0].trim();
cmp[1] = "<";
cmp[2] = temp[1].trim();
}
if (equ.contains(">=")) {
temp = equ.split(">=");
cmp[0] = temp[0].trim();
cmp[1] = ">=";
cmp[2] = temp[1].trim();
}
if (equ.contains("<=")) {
temp = equ.split("<=");
cmp[0] = temp[0].trim();
cmp[1] = "<=";
cmp[2] = temp[1].trim();
}
if (equ.contains("<>")) {
temp = equ.split("<>");
cmp[0] = temp[0].trim();
cmp[1] = "<>";
cmp[2] = temp[1].trim();
}
return cmp;
}
}