2
2
3
3
import org .dcsc .athena .objects .TutoringSession ;
4
4
5
+ import java .util .*;
6
+
5
7
import java .util .concurrent .*;
6
8
import java .util .ArrayList ;
7
9
import java .util .HashMap ;
@@ -14,9 +16,9 @@ public class AxisQueue {
14
16
15
17
private ConcurrentHashMap <String , Subject > tutoredSubjects ;
16
18
17
- private ConcurrentHashMap <TutorExtension , Boolean > currentTutors ;
19
+ private ConcurrentHashMap <TutorExtension , Boolean > currentTutorsInQueue ;
18
20
19
- private ConcurrentHashMap <Tutee , Boolean > currentTutees ;
21
+ private ConcurrentHashMap <Tutee , Boolean > currentTuteesInQueue ;
20
22
21
23
private ConcurrentHashMap <Person , String > personToId ;
22
24
@@ -38,8 +40,8 @@ private ArrayList<String> orderedSubjects(TutorExtension tr) {
38
40
39
41
public AxisQueue () {
40
42
tutoredSubjects = new ConcurrentHashMap <String , Subject >();
41
- currentTutors = new ConcurrentHashMap <TutorExtension , Boolean >();
42
- currentTutees = new ConcurrentHashMap <Tutee , Boolean >();
43
+ currentTutorsInQueue = new ConcurrentHashMap <TutorExtension , Boolean >();
44
+ currentTuteesInQueue = new ConcurrentHashMap <Tutee , Boolean >();
43
45
personToId = new ConcurrentHashMap <Person , String > ();
44
46
idToPerson = new ConcurrentHashMap <String , Person > ();
45
47
tutorSessions = new ConcurrentHashMap <String , TutoringSession > ();
@@ -52,11 +54,14 @@ private void addClass(String className) {
52
54
}
53
55
54
56
public boolean hasId (long id ) {
55
- return currentIdTutors .containsKey (id );
57
+ //Depreciated
58
+ // return currentIdTutors.containsKey(id);
59
+ return false ;
56
60
}
57
61
58
62
public void setSession (String id , TutoringSession s ) {
59
63
// currentIdTutors.put(s.getTutor().getId(), true);
64
+
60
65
tutorSessions .put (id , s );
61
66
}
62
67
@@ -113,7 +118,7 @@ private Status removeTutee(Tutee te, String subject) {
113
118
private Status processTutor (TutorExtension tr ) {
114
119
Status currentStatus = tutoredSubjects .get (tr .getTutorSubject ()).processTutor (tr );
115
120
if (currentStatus .getType ().equals (StatusType .TUTEE_FOUND )) {
116
- currentTutees .remove (currentStatus .getTutee ());
121
+ currentTuteesInQueue .remove (currentStatus .getTutee ());
117
122
removeCurrentTutor (tr .getTutor ().getId ());
118
123
messagingTemplate .convertAndSend ("/topic/" + currentStatus .getTutee ().getRoom (), tr .getPairingData ());
119
124
}
@@ -127,7 +132,7 @@ private Status processTutee(Tutee te, String classRequested) {
127
132
TutorExtension pairedTutor = currentStatus .getTutor ();
128
133
129
134
if (currentStatus .getType ().equals (StatusType .TUTOR_FOUND )) {
130
- currentTutors .remove (currentStatus .getTutor ());
135
+ currentTutorsInQueue .remove (currentStatus .getTutor ());
131
136
messagingTemplate .convertAndSend ("/topic/" + currentStatus .getTutor ().getRoom (), te .getPairingData ());
132
137
}
133
138
@@ -159,14 +164,23 @@ public synchronized HashMap<String, Integer> getQueueData() {
159
164
160
165
public synchronized ArrayList <HashMap <String , String >> getTutorList () {
161
166
if (DEBUG_MODE ) {
162
- ArrayList <HashMap <String , String >> temp = new ArrayList <HashMap <String , String >>();
163
- HashMap <String , String > temp2 = new HashMap <String , String >();
164
- temp2 .put ("subjects" , "10, 20, 30" );
165
- temp2 .put ("tutorID" , "5124" );
166
- temp2 .put ("name" , "WORK IN PROGRESS" );
167
- temp2 .put ("location" , "PC 31" );
168
- temp .add (temp2 );
169
- return temp ;
167
+ ArrayList <HashMap <String , String >> finalList = new ArrayList <HashMap <String , String >>();
168
+ List sortedKeys = new ArrayList <TutorExtension >(currentTutorsInQueue .keySet ());
169
+ Collections .sort (sortedKeys );
170
+
171
+
172
+ for (Object t : sortedKeys ) {
173
+ TutorExtension te = (TutorExtension )t ;
174
+
175
+ HashMap <String , String > currentIteration = new HashMap <String , String >();
176
+ currentIteration .put ("subjects" , te .getSubjectListString ());
177
+ currentIteration .put ("tutorID" , "5124" );
178
+ currentIteration .put ("name" , te .getName ());
179
+ currentIteration .put ("location" , "Kemper" );
180
+ finalList .add (currentIteration );
181
+ }
182
+
183
+ return finalList ;
170
184
}
171
185
return new ArrayList <HashMap <String , String >>();
172
186
}
@@ -176,7 +190,7 @@ public synchronized Status tutorQuit(TutorExtension tr) {
176
190
removeTutor (tr , subject );
177
191
}
178
192
179
- currentTutors .remove (tr );
193
+ currentTutorsInQueue .remove (tr );
180
194
181
195
182
196
removeCurrentTutor (tr .getTutor ().getId ());
@@ -185,7 +199,8 @@ public synchronized Status tutorQuit(TutorExtension tr) {
185
199
}
186
200
187
201
public synchronized void removeCurrentTutor (Long id ) {
188
- currentIdTutors .remove (id );
202
+ //Depreciated
203
+ // currentIdTutors.remove(id);
189
204
}
190
205
191
206
public synchronized Status removePersonAndMappingByID (String id ) {
@@ -206,13 +221,13 @@ public synchronized Status removePersonAndMappingByID(String id) {
206
221
}
207
222
208
223
public synchronized Status tuteeQuit (Tutee te ) {
209
- currentTutees .remove (te );
224
+ currentTuteesInQueue .remove (te );
210
225
removeTutee (te , te .getRequestedClass ());
211
226
return new Status (StatusType .TUTEE_QUIT , te );
212
227
}
213
228
214
229
// public synchronized Status tutorPresent(Tutor tr) {
215
- // currentTutors .put(tr, true);
230
+ // currentTutorsInQueue .put(tr, true);
216
231
// return new Status(StatusType.TUTOR_REGISTERED, tr);
217
232
// }
218
233
@@ -221,17 +236,18 @@ public synchronized Status add(Person p) {
221
236
if (p instanceof TutorExtension ) {
222
237
223
238
TutorExtension tr = (TutorExtension ) p ;
224
- if (currentTutors .containsKey (tr ) || hasId (tr .getTutor ().getId ())) {
239
+ if (currentTutorsInQueue .containsKey (tr ) || hasId (tr .getTutor ().getId ())) {
225
240
return new Status (StatusType .DUPE_ERROR , "Duplicate Tutor" );
226
241
}
227
242
228
- currentIdTutors .put (tr .getTutor ().getId (), true );
243
+ //Depreciated
244
+ // currentIdTutors.put(tr.getTutor().getId(), true);
229
245
tr .setValid (true );
230
246
231
247
if (canTutor (tr )) {
232
248
return processTutor (tr );
233
249
} else {
234
- currentTutors .put (tr , true );
250
+ currentTutorsInQueue .put (tr , true );
235
251
for (String subject : tr .getSubjects ()) {
236
252
if (!tutoredSubjects .containsKey (subject )) {
237
253
addClass (subject );
@@ -244,12 +260,12 @@ public synchronized Status add(Person p) {
244
260
Tutee te = (Tutee ) p ;
245
261
String classRequested = te .getRequestedClass ();
246
262
247
- if (currentTutees .containsKey (te ))
263
+ if (currentTuteesInQueue .containsKey (te ))
248
264
return new Status (StatusType .DUPE_ERROR , "Duplicate Tutee" );
249
265
if (canBeTutored (classRequested )) {
250
266
return processTutee (te , classRequested );
251
267
} else {
252
- currentTutees .put (te , true );
268
+ currentTuteesInQueue .put (te , true );
253
269
if (!tutoredSubjects .containsKey (classRequested )) {
254
270
addClass (classRequested );
255
271
}
0 commit comments