1
1
package seedu .duke .flashcard ;
2
2
3
3
import java .time .LocalDateTime ;
4
- import java .util .ArrayList ;
4
+ import java .util .logging .Level ;
5
+ import java .util .logging .Logger ;
5
6
6
7
/**
7
8
* FlashcardStorageParser class
8
9
* Utility class for parsing
9
10
*/
10
11
public final class FlashcardStorageParser {
11
12
13
+ private static Logger flashlogger ; // for logging
14
+
12
15
/**
13
16
* load a flash card from certain format
14
17
* Tokens includes attributes of Flashcard
@@ -17,82 +20,26 @@ public final class FlashcardStorageParser {
17
20
*/
18
21
public static Flashcard loadFlashcard (String [] tokens ){
19
22
20
- assert tokens .length == 6 : "Token length should be 5" ;
23
+ flashlogger = Logger .getLogger ("flash" );
24
+ flashlogger .setLevel (Level .WARNING );
25
+
26
+ assert tokens .length == 4 : "Token length should be 4" ;
21
27
22
- // flashlogger.log(Level.INFO, "token length is", tokens.length);
23
- // System.out.println(tokens[0]);
28
+ flashlogger .log (Level .INFO , "token length is" , tokens .length );
24
29
25
30
int id = Integer .parseInt (tokens [0 ].trim ());
26
31
String frontText = tokens [1 ].trim ();
27
32
String backText = tokens [2 ].trim ();
28
- String [] tags = tokens [3 ].trim ().split ("/" );
29
- String [] reviews = tokens [4 ].trim ().split ("/" );
30
- String nextReviewOn = tokens [5 ].trim ();
33
+ int difficulty = Integer .parseInt (tokens [3 ].trim ());
31
34
32
35
33
36
Flashcard flashcard = new Flashcard (frontText , backText );
34
37
35
38
flashcard .setId (id );
39
+ flashcard .setDifficulty (difficulty );
36
40
37
- //flashlogger.log(Level.INFO, "added flashcard");
38
-
39
- for (String tag :tags ){
40
- if (tag .trim ().equals ("-" )) {
41
- break ;
42
- } else {
43
- System .out .println ("tags are not for v1" );
44
- }
45
- }
46
-
47
- for (String review : reviews ){
48
- if (review .trim ().equals ("-" )) {
49
- break ;
50
- } else {
51
- String [] reviewTokens = review .split ("#" );
52
- LocalDateTime reviewDate = LocalDateTime .parse (reviewTokens [0 ].trim ());
53
- ReviewDifficulty reviewDifficulty = ReviewDifficulty .valueOf (reviewTokens [1 ].trim ());
54
-
55
- FlashcardReview flashcardReview = new FlashcardReview (reviewDate , reviewDifficulty );
56
- flashcard .addReview (flashcardReview );
57
-
58
- flashcard .setLastReviewOn (reviewDate );
59
-
60
- }
61
- }
62
-
63
- if (!nextReviewOn .equals ("-" )){
64
- //LocalDateTime.parse(nextReviewOn);
65
- System .out .println ("reviews are not for v1" );
66
- }
41
+ flashlogger .log (Level .INFO , "loaded flashcard" );
67
42
68
43
return flashcard ;
69
44
}
70
-
71
- /**
72
- * reviews to String methods
73
- * make String from reviews list
74
- * @param reviewList
75
- * @return String of review
76
- */
77
- public static String reviewtoString (ArrayList <FlashcardReview > reviewList ){
78
- StringBuilder reviews ;
79
-
80
- if (reviewList .isEmpty ()){
81
- reviews = new StringBuilder ("-" );
82
- } else {
83
- reviews = new StringBuilder ();
84
- for (FlashcardReview review : reviewList ){
85
- if (reviews .length () > 0 ){
86
- reviews .append ("/" );
87
- }
88
- reviews .append (review .getReviewDate ().toString ());
89
- // identifier between date and difficulty is #
90
- reviews .append (" # " );
91
- reviews .append (review .getReviewDifficulty ());
92
-
93
- }
94
- }
95
-
96
- return reviews .toString ();
97
- }
98
45
}
0 commit comments