2121import seedu .address .model .UserPrefs ;
2222import seedu .address .model .meeting .MeetingBook ;
2323import seedu .address .model .meeting .ReadOnlyMeetingBook ;
24+ import seedu .address .model .note .NoteBook ;
25+ import seedu .address .model .note .ReadOnlyNoteBook ;
2426import seedu .address .model .person .AddressBook ;
2527import seedu .address .model .person .ReadOnlyAddressBook ;
2628import seedu .address .model .util .SampleDataUtil ;
2729import seedu .address .storage .AddressBookStorage ;
2830import seedu .address .storage .JsonAddressBookStorage ;
2931import seedu .address .storage .JsonMeetingBookStorage ;
32+ import seedu .address .storage .JsonNoteBookStorage ;
3033import seedu .address .storage .JsonUserPrefsStorage ;
3134import seedu .address .storage .MeetingBookStorage ;
35+ import seedu .address .storage .NoteBookStorage ;
3236import seedu .address .storage .Storage ;
3337import seedu .address .storage .StorageManager ;
3438import seedu .address .storage .UserPrefsStorage ;
@@ -63,7 +67,8 @@ public void init() throws Exception {
6367 UserPrefs userPrefs = initPrefs (userPrefsStorage );
6468 AddressBookStorage addressBookStorage = new JsonAddressBookStorage (userPrefs .getAddressBookFilePath ());
6569 MeetingBookStorage meetingBookStorage = new JsonMeetingBookStorage (userPrefs .getMeetingBookFilePath ());
66- storage = new StorageManager (addressBookStorage , meetingBookStorage , userPrefsStorage );
70+ NoteBookStorage noteBookStorage = new JsonNoteBookStorage (userPrefs .getNoteBookFilePath ());
71+ storage = new StorageManager (addressBookStorage , meetingBookStorage , noteBookStorage , userPrefsStorage );
6772
6873 initLogging (config );
6974
@@ -82,8 +87,10 @@ public void init() throws Exception {
8287 private Model initModelManager (Storage storage , ReadOnlyUserPrefs userPrefs ) {
8388 Optional <ReadOnlyAddressBook > addressBookOptional ;
8489 Optional <ReadOnlyMeetingBook > meetingBookOptional ;
90+ Optional <ReadOnlyNoteBook > noteBookOptional ;
8591 ReadOnlyAddressBook initialDataAddressBook ;
8692 ReadOnlyMeetingBook initialDataMeetingBook ;
93+ ReadOnlyNoteBook initialDataNoteBook ;
8794
8895 try {
8996 addressBookOptional = storage .readAddressBook ();
@@ -115,8 +122,23 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) {
115122 initialDataMeetingBook = new MeetingBook ();
116123 }
117124
125+ //--============= NOTE ==================================================================================
118126
119- return new ModelManager (initialDataAddressBook , initialDataMeetingBook , userPrefs );
127+ try {
128+ noteBookOptional = storage .readNoteBook ();
129+ if (!noteBookOptional .isPresent ()) {
130+ logger .info ("Data file not found. Will be starting with a sample NoteBook" );
131+ }
132+ initialDataNoteBook = noteBookOptional .orElseGet (SampleDataUtil ::getSampleNoteBook );
133+ } catch (DataConversionException e ) {
134+ logger .warning ("Data file not in the correct format. Will be starting with an empty NoteBook" );
135+ initialDataNoteBook = new NoteBook ();
136+ } catch (IOException e ) {
137+ logger .warning ("Problem while reading from the file. Will be starting with an empty NoteBook" );
138+ initialDataNoteBook = new NoteBook ();
139+ }
140+
141+ return new ModelManager (initialDataAddressBook , initialDataMeetingBook , initialDataNoteBook , userPrefs );
120142 }
121143
122144 private void initLogging (Config config ) {
0 commit comments