-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRequestThread.java
More file actions
120 lines (108 loc) · 4.7 KB
/
RequestThread.java
File metadata and controls
120 lines (108 loc) · 4.7 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
import java.io.File;
import java.io.IOException;
import java.net.DatagramPacket;
public class RequestThread extends Thread {
DatagramPacket request;
String[] splitedLine;
String result = new String();
byte[] buffer = new byte[1000000000];
public RequestThread(String[] splitedLine, DatagramPacket request) {
this.splitedLine = splitedLine;
this.request = request;
}
public void run(){
result = splitedLine[0];
switch (result) {
case ("insert"): {
try {
//System.out.println(splitedLine[1]);
Server.collection = Orders.insert(Server.collection, splitedLine[1], request);
} catch (Exception e) {
String sout = new String("Не было введено достаточно данных");
Orders.send(sout, request);
}
}
break;
case ("save"):
case ("exit"): {
if (!(Server.collection.isEmpty())) {
File defaultFile = new File(Orders.lastPath);
if (Orders.lastPath.length() != 0 & defaultFile.canWrite()) {
Orders.exit(Server.collection, Orders.lastPath,request);
} else {
String Path = new File("").getAbsolutePath();
String newPath = Path.concat("/" + (int) (Math.random() * 10000) + ".json");
File checkFile = new File(newPath);
while (checkFile.isFile() & checkFile.canRead()) {
newPath = Path.concat("/" + (int) (Math.random() * 10000) + ".json");
checkFile = new File(newPath);
}
String sout = new String(newPath);
Orders.lastPath = sout;
Orders.send(sout, request);
Orders.exit(Server.collection, newPath, request);
}
}
}
break;
case ("info"): {
if (!(Server.collection.isEmpty())) Orders.info(Server.collection, request);
else{
String sout = new String("Коллекция пуста");
Orders.send(sout, request);
}
}
break;
case ("remove_greater_key"): {
if (!(Server.collection.isEmpty())) Orders.removeGreaterCollection(Server.collection, splitedLine[1]);
else{
String sout = new String("Коллекция пуста");
Orders.send(sout, request);
}
}
break;
case ("show"): {
if (!(Server.collection.isEmpty())) Orders.show(Server.collection, request);
else{
String sout = new String("Коллекция пуста");
Orders.send(sout, request);
}
}
break;
case ("load"): {
if (Orders.lastPath.length() != 0) {
Server.collection = Orders.load(Orders.lastPath);
}
if (Orders.lastImportedCollection.length() != 0)
{
}
else {
String sout = new String("Нельзя перезагрузить коллекцию, так как изначально не был указан путь.");
Orders.send(sout, request);
}
break;
}
case ("import"): {
Server.collection = Orders.importCollection(Server.collection, splitedLine[1], request);
}
break;
case ("remove"): {
try {
if (!(Server.collection.isEmpty()))
Orders.removeFromCollection(Server.collection, splitedLine[1], request);
else {
String sout = new String("Коллекция пуста");
Orders.send(sout, request);
}
}
catch (ArrayIndexOutOfBoundsException e){
String sout = new String("Не указан элемент");
Orders.send(sout, request);
}
}
break;
default: String sout = new String("Такой команды не существует");
Orders.send(sout, request);
}
}
}