Skip to content

Commit 36d1ae4

Browse files
committed
Split NoteData and its serializer into its own file
1 parent 14e7f34 commit 36d1ae4

File tree

7 files changed

+43
-37
lines changed

7 files changed

+43
-37
lines changed

lib/core/note.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import 'dart:io';
33
import 'package:flutter/material.dart';
44
import 'package:path/path.dart' as p;
55

6+
import 'note_data.dart';
7+
import 'note_data_serializers.dart';
68
import 'note_fileName.dart';
79
import 'note_serializer.dart';
810
import 'notes_folder.dart';
9-
import 'serializers.dart';
1011

1112
enum NoteLoadState {
1213
None,

lib/core/note_data.dart

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import 'dart:collection';
2+
3+
class NoteData {
4+
String body = "";
5+
LinkedHashMap<String, dynamic> props = LinkedHashMap<String, dynamic>();
6+
7+
NoteData([this.body, this.props]) {
8+
body = body ?? "";
9+
// ignore: prefer_collection_literals
10+
props = props ?? LinkedHashMap<String, dynamic>();
11+
}
12+
13+
@override
14+
int get hashCode => body.hashCode ^ props.hashCode;
15+
16+
@override
17+
bool operator ==(Object other) =>
18+
identical(this, other) ||
19+
other is NoteData &&
20+
runtimeType == other.runtimeType &&
21+
body == other.body &&
22+
_equalMaps(props, other.props);
23+
24+
static bool _equalMaps(Map a, Map b) {
25+
if (a.length != b.length) return false;
26+
return a.keys
27+
.every((dynamic key) => b.containsKey(key) && a[key] == b[key]);
28+
}
29+
30+
@override
31+
String toString() {
32+
return 'NoteData{body: $body, props: $props}';
33+
}
34+
}

lib/core/serializers.dart renamed to lib/core/note_data_serializers.dart

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,7 @@ import 'package:fimber/fimber.dart';
44
import 'package:yaml/yaml.dart';
55
import 'package:yaml_serializer/yaml_serializer.dart';
66

7-
class NoteData {
8-
String body = "";
9-
LinkedHashMap<String, dynamic> props = LinkedHashMap<String, dynamic>();
10-
11-
NoteData([this.body, this.props]) {
12-
body = body ?? "";
13-
// ignore: prefer_collection_literals
14-
props = props ?? LinkedHashMap<String, dynamic>();
15-
}
16-
17-
@override
18-
int get hashCode => body.hashCode ^ props.hashCode;
19-
20-
@override
21-
bool operator ==(Object other) =>
22-
identical(this, other) ||
23-
other is NoteData &&
24-
runtimeType == other.runtimeType &&
25-
body == other.body &&
26-
_equalMaps(props, other.props);
27-
28-
static bool _equalMaps(Map a, Map b) {
29-
if (a.length != b.length) return false;
30-
return a.keys
31-
.every((dynamic key) => b.containsKey(key) && a[key] == b[key]);
32-
}
33-
34-
@override
35-
String toString() {
36-
return 'NoteData{body: $body, props: $props}';
37-
}
38-
}
7+
import 'note_data.dart';
398

409
abstract class NoteDataSerializer {
4110
String encode(NoteData note);

lib/core/note_serializer.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:gitjournal/utils/datetime.dart';
22

33
import 'note.dart';
4-
import 'serializers.dart';
4+
import 'note_data.dart';
55

66
abstract class NoteSerializerInterface {
77
void encode(Note note, NoteData data);

lib/screens/journal_editor.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import 'package:gitjournal/core/note.dart';
44
import 'package:gitjournal/core/notes_folder.dart';
55
import 'package:gitjournal/state_container.dart';
66
import 'package:gitjournal/widgets/journal_editor_header.dart';
7-
import 'package:gitjournal/core/serializers.dart';
7+
import 'package:gitjournal/core/note_data.dart';
8+
import 'package:gitjournal/core/note_data_serializers.dart';
89

910
enum NoteEditorDropDownChoices { Discard, SwitchEditor }
1011

test/serializers_test.dart renamed to test/note_data_serializers_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:collection';
22

3-
import 'package:gitjournal/core/serializers.dart';
3+
import 'package:gitjournal/core/note_data.dart';
4+
import 'package:gitjournal/core/note_data_serializers.dart';
45
import 'package:gitjournal/utils/datetime.dart';
56
import 'package:test/test.dart';
67

test/note_storage_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'dart:io';
33

44
import 'package:gitjournal/utils/datetime.dart';
55
import 'package:gitjournal/core/note.dart';
6-
import 'package:gitjournal/core/serializers.dart';
6+
import 'package:gitjournal/core/note_data.dart';
77
import 'package:path/path.dart' as p;
88
import 'package:test/test.dart';
99

0 commit comments

Comments
 (0)