Skip to content

Commit f62ccac

Browse files
Merge pull request nus-cs2113-AY2324S1#36 from junhyeong0411/master
Making format for Event Storage
2 parents 418ce43 + 44cee0d commit f62ccac

File tree

6 files changed

+161
-12
lines changed

6 files changed

+161
-12
lines changed

data/flashcard.txt

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package seedu.duke.calendar;
2+
3+
import java.io.File;
4+
5+
/**
6+
* directory for directory
7+
* can list-up txt files in text folder
8+
* In version 1, using only event.txt
9+
* In version 2, can select or create
10+
*/
11+
12+
public class EventDirectory {
13+
String path;
14+
File file;
15+
16+
public EventDirectory(){
17+
path = "./data/events";
18+
19+
file = new File(path);
20+
if(!file.exists()){
21+
if(file.mkdir()){
22+
System.out.println(" Created data directory");
23+
} else{
24+
System.out.println(" Failed to create directory");
25+
}
26+
} else{
27+
System.out.println(" Using data/events directory");
28+
}
29+
}
30+
31+
/**
32+
* list-up saved files
33+
* selecting file is for version 2
34+
*/
35+
public void listEventFiles(){
36+
String[] eventFiles = file.list();
37+
if(eventFiles == null){
38+
System.out.println("Failed to find files");
39+
} else if(eventFiles.length == 0){
40+
System.out.println("No files exist");
41+
} else{
42+
for(String eventFile : eventFiles){
43+
System.out.println(" "+eventFile);
44+
}
45+
}
46+
}
47+
48+
/**
49+
* return default directory
50+
* for version 1
51+
* @return directory for flashcard txt file
52+
*/
53+
public String defaultDirectory() {
54+
return this.path + "/event.txt";
55+
}
56+
57+
/**
58+
* return directory of flashcard txt file
59+
* for version 2
60+
* @param path
61+
* @return
62+
*/
63+
public String eventDirectory(String path) {
64+
return this.path + path;
65+
}
66+
67+
}

src/main/java/seedu/duke/calendar/EventList.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public ArrayList<Event> getEvent() {
1818
return eventList;
1919
}
2020

21+
public int getSize(){ return eventList.size();}
22+
2123
public void deleteEvent(String name) {
2224
eventList.removeIf(event -> event.getName().equals(name));
2325
}
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package seedu.duke.calendar;
2+
3+
import java.io.File;
4+
import java.io.FileNotFoundException;
5+
import java.io.FileWriter;
6+
import java.io.IOException;
7+
import java.time.LocalDateTime;
8+
import java.util.ArrayList;
9+
import java.util.Scanner;
10+
11+
/**
12+
* storage for Events
13+
* One storage manages one file
14+
*/
15+
public class EventStorage {
16+
protected String path;
17+
18+
public EventStorage(String path){
19+
this.path = path;
20+
}
21+
22+
23+
public boolean isStorageAvailable(){
24+
File f = new File(this.path);
25+
return f.exists();
26+
}
27+
28+
/**
29+
* load a event from certain format
30+
* Tokens includes attributes of Event
31+
* @param tokens
32+
* @return Event object
33+
*/
34+
private Event loadEvent(String[] tokens){
35+
36+
assert tokens.length == 3: "Token length should be 3";
37+
38+
String name = tokens[0].trim();
39+
LocalDateTime from = LocalDateTime.parse(tokens[1].trim());
40+
LocalDateTime to = LocalDateTime.parse(tokens[2].trim());
41+
42+
return new Event(name, from, to);
43+
}
44+
45+
/**
46+
* load list of events
47+
* from this.path
48+
* @return list of Events
49+
* @throws FileNotFoundException
50+
*/
51+
public EventList loadEvents() throws FileNotFoundException{
52+
EventList eventList = new EventList(new ArrayList<>());
53+
File f = new File (this.path);
54+
Scanner s = new Scanner(f);
55+
56+
while(s.hasNext()){
57+
String[] eventTokens = s.nextLine().split(" \\| ");
58+
eventList.addEvent(loadEvent(eventTokens));
59+
}
60+
61+
System.out.println(String.format(
62+
" There are currently %d events in the savefile",
63+
eventList.getSize()));
64+
65+
return eventList;
66+
67+
}
68+
69+
public void saveEvents(ArrayList<Event> eventList) {
70+
71+
try {
72+
FileWriter fw = new FileWriter(path);
73+
74+
for (int i = 0; i < eventList.size(); i++) {
75+
Event event = eventList.get(i);
76+
fw.write(String.format("%s | %s | %s \r\n",
77+
event.getName(), event.getFrom(), event.getTo()));
78+
}
79+
fw.close();
80+
} catch (IOException e){
81+
System.out.println("Failed to save.");
82+
}
83+
}
84+
85+
86+
87+
88+
89+
}

src/main/java/seedu/duke/flashcard/FlashcardComponent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public FlashcardComponent() {
2323
FlashcardDirectory flashcarddirectory = new FlashcardDirectory();
2424
flashcarddirectory.listFlashcardFiles();
2525

26-
storage = new FlashcardStorage("./data/flashcard.txt");
26+
storage = new FlashcardStorage("./data/flashcards/flashcard.txt");
2727
try {
2828
flashcardList = storage.loadFlashcards();
2929
} catch (FileNotFoundException e){

src/main/java/seedu/duke/flashcard/FlashcardDirectory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class FlashcardDirectory {
1515
File file;
1616

1717
public FlashcardDirectory(){
18-
path = "./data";
18+
path = "./data/flashcards";
1919

2020
file = new File(path);
2121
if(!file.exists()){
@@ -25,7 +25,7 @@ public FlashcardDirectory(){
2525
System.out.println(" Failed to create directory");
2626
}
2727
} else{
28-
System.out.println(" Using data directory");
28+
System.out.println(" Using data/flashcards directory");
2929
}
3030
}
3131

0 commit comments

Comments
 (0)