Skip to content

Commit c510134

Browse files
committed
Refactor SavePreferences to remove setter
1 parent 4557efb commit c510134

File tree

6 files changed

+43
-50
lines changed

6 files changed

+43
-50
lines changed

src/main/java/net/sf/jabref/collab/ChangeScanner.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ private void storeTempDatabase() {
159159
@Override
160160
public void run() {
161161
try {
162-
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs);
163-
prefs.setMakeBackup(false);
164-
prefs.setEncoding(panel.getEncoding());
162+
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs)
163+
.withMakeBackup(false)
164+
.withEncoding(panel.getEncoding());
165165

166166
Defaults defaults = new Defaults(BibDatabaseMode.fromPreference(Globals.prefs.getBoolean(JabRefPreferences.BIBLATEX_MODE)));
167167
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();

src/main/java/net/sf/jabref/exporter/AutoSaveManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ private static boolean autoSave(BasePanel panel) {
9696
File databaseFile = panel.getBibDatabaseContext().getDatabaseFile();
9797
File backupFile = AutoSaveManager.getAutoSaveFile(databaseFile);
9898
try {
99-
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs);
100-
prefs.setMakeBackup(false);
101-
prefs.setEncoding(panel.getEncoding());
99+
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs)
100+
.withMakeBackup(false)
101+
.withEncoding(panel.getEncoding());
102102

103103
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
104104
SaveSession ss = databaseWriter.saveDatabase(panel.getBibDatabaseContext(), prefs);

src/main/java/net/sf/jabref/exporter/SaveDatabaseAction.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,7 @@ private boolean saveDatabase(File file, boolean selectedOnly, Charset encoding)
226226
SaveSession session;
227227
frame.block();
228228
try {
229-
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs);
230-
prefs.setEncoding(encoding);
229+
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs).withEncoding(encoding);
231230
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
232231
if (selectedOnly) {
233232
session = databaseWriter.savePartOfDatabase(panel.getBibDatabaseContext(), prefs,

src/main/java/net/sf/jabref/exporter/SavePreferences.java

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88

99
public class SavePreferences {
1010

11-
private boolean reformatFile;
12-
private boolean saveInOriginalOrder;
13-
private SaveOrderConfig saveOrder;
14-
private Charset encoding;
15-
private boolean makeBackup;
16-
private DatabaseSaveType saveType;
17-
private boolean takeMetadataSaveOrderInAccount;
11+
private final boolean reformatFile;
12+
private final boolean saveInOriginalOrder;
13+
private final SaveOrderConfig saveOrder;
14+
private final Charset encoding;
15+
private final boolean makeBackup;
16+
private final DatabaseSaveType saveType;
17+
private final boolean takeMetadataSaveOrderInAccount;
1818

1919
public SavePreferences() {
20-
20+
this(true, null, null, false, DatabaseSaveType.ALL, true, false);
2121
}
2222

2323
public SavePreferences(Boolean saveInOriginalOrder, SaveOrderConfig saveOrder, Charset encoding, Boolean makeBackup,
@@ -74,40 +74,45 @@ public boolean isSaveInOriginalOrder() {
7474
return saveInOriginalOrder;
7575
}
7676

77-
public void setSaveInOriginalOrder(Boolean saveInOriginalOrder) {
78-
this.saveInOriginalOrder = saveInOriginalOrder;
77+
public SavePreferences withSaveInOriginalOrder(Boolean saveInOriginalOrder) {
78+
return new SavePreferences(saveInOriginalOrder, this.saveOrder, this.encoding, this.makeBackup, this.saveType,
79+
this.takeMetadataSaveOrderInAccount, this.reformatFile);
7980
}
8081

8182
public boolean getMakeBackup() {
8283
return makeBackup;
8384
}
8485

85-
public void setMakeBackup(Boolean makeBackup) {
86-
this.makeBackup = makeBackup;
86+
public SavePreferences withMakeBackup(Boolean makeBackup) {
87+
return new SavePreferences(this.saveInOriginalOrder, this.saveOrder, this.encoding, makeBackup, this.saveType,
88+
this.takeMetadataSaveOrderInAccount, this.reformatFile);
8789
}
8890

8991
public Charset getEncoding() {
9092
return encoding;
9193
}
9294

93-
public void setEncoding(Charset encoding) {
94-
this.encoding = encoding;
95+
public SavePreferences withEncoding(Charset encoding) {
96+
return new SavePreferences(this.saveInOriginalOrder, this.saveOrder, encoding, this.makeBackup, this.saveType,
97+
this.takeMetadataSaveOrderInAccount, this.reformatFile);
9598
}
9699

97100
public DatabaseSaveType getSaveType() {
98101
return saveType;
99102
}
100103

101-
public void setSaveType(DatabaseSaveType saveType) {
102-
this.saveType = saveType;
104+
public SavePreferences withSaveType(DatabaseSaveType saveType) {
105+
return new SavePreferences(this.saveInOriginalOrder, this.saveOrder, this.encoding, this.makeBackup, saveType,
106+
this.takeMetadataSaveOrderInAccount, this.reformatFile);
103107
}
104108

105109
public Boolean isReformatFile() {
106110
return reformatFile;
107111
}
108112

109-
public void setReformatFile(boolean reformatFile) {
110-
this.reformatFile = reformatFile;
113+
public SavePreferences withReformatFile(boolean reformatFile) {
114+
return new SavePreferences(this.saveInOriginalOrder, this.saveOrder, this.encoding, this.makeBackup,
115+
this.saveType, this.takeMetadataSaveOrderInAccount, reformatFile);
111116
}
112117

113118
public enum DatabaseSaveType {

src/main/java/net/sf/jabref/gui/BasePanel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,9 +1198,9 @@ private boolean saveDatabase(File file, boolean selectedOnly, Charset enc, SaveP
11981198
frame.block();
11991199
final String SAVE_DATABASE = Localization.lang("Save database");
12001200
try {
1201-
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs);
1202-
prefs.setEncoding(enc);
1203-
prefs.setSaveType(saveType);
1201+
SavePreferences prefs = SavePreferences.loadForSaveFromPreferences(Globals.prefs)
1202+
.withEncoding(enc)
1203+
.withSaveType(saveType);
12041204
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
12051205
if (selectedOnly) {
12061206
session = databaseWriter.savePartOfDatabase(bibDatabaseContext, prefs,

src/test/java/net/sf/jabref/exporter/BibDatabaseWriterTest.java

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ public void writeWithNullPreferencesThrowsException() throws IOException {
6767
@Test
6868
public void writeEncoding() throws IOException {
6969
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
70-
SavePreferences preferences = new SavePreferences();
71-
preferences.setEncoding(Charsets.US_ASCII);
70+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
7271

7372
StringWriter stringWriter = new StringWriter();
7473
databaseWriter.writePartOfDatabase(stringWriter, new BibDatabaseContext(new Defaults(BibDatabaseMode.BIBTEX)),
@@ -93,8 +92,7 @@ public void writePreamble() throws IOException {
9392
@Test
9493
public void writePreambleAndEncoding() throws IOException {
9594
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
96-
SavePreferences preferences = new SavePreferences();
97-
preferences.setEncoding(Charsets.US_ASCII);
95+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
9896
BibDatabase database = new BibDatabase();
9997
database.setPreamble("Test preamble");
10098
BibDatabaseContext context = new BibDatabaseContext(database, new Defaults(BibDatabaseMode.BIBTEX));
@@ -126,8 +124,7 @@ public void writeEntry() throws IOException {
126124
@Test
127125
public void writeEncodingAndEntry() throws IOException {
128126
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
129-
SavePreferences preferences = new SavePreferences();
130-
preferences.setEncoding(Charsets.US_ASCII);
127+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
131128
BibEntry entry = new BibEntry();
132129
entry.setType(BibtexEntryTypes.ARTICLE);
133130
BibDatabase database = new BibDatabase();
@@ -157,8 +154,7 @@ public void writeEpilogue() throws IOException {
157154
@Test
158155
public void writeEpilogueAndEncoding() throws IOException {
159156
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
160-
SavePreferences preferences = new SavePreferences();
161-
preferences.setEncoding(Charsets.US_ASCII);
157+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
162158
BibDatabase database = new BibDatabase();
163159
database.setEpilog("Test epilog");
164160
BibDatabaseContext context = new BibDatabaseContext(database, new Defaults(BibDatabaseMode.BIBTEX));
@@ -187,8 +183,7 @@ public void writeMetadata() throws IOException {
187183

188184
@Test
189185
public void writeMetadataAndEncoding() throws IOException {
190-
SavePreferences preferences = new SavePreferences();
191-
preferences.setEncoding(Charsets.US_ASCII);
186+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
192187
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
193188
MetaData metaData = new MetaData();
194189
DatabaseLabelPattern labelPattern = new DatabaseLabelPattern();
@@ -228,8 +223,7 @@ public void writeGroups() throws IOException {
228223

229224
@Test
230225
public void writeGroupsAndEncoding() throws IOException {
231-
SavePreferences preferences = new SavePreferences();
232-
preferences.setEncoding(Charsets.US_ASCII);
226+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
233227
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
234228
MetaData metaData = new MetaData();
235229
GroupTreeNode groupRoot = new GroupTreeNode(new AllEntriesGroup());
@@ -269,8 +263,7 @@ public void writeString() throws IOException {
269263
@Test
270264
public void writeStringAndEncoding() throws IOException {
271265
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
272-
SavePreferences preferences = new SavePreferences();
273-
preferences.setEncoding(Charsets.US_ASCII);
266+
SavePreferences preferences = new SavePreferences().withEncoding(Charsets.US_ASCII);
274267
BibDatabase database = new BibDatabase();
275268
database.addString(new BibtexString("id", "name", "content"));
276269
BibDatabaseContext context = new BibDatabaseContext(database, new Defaults(BibDatabaseMode.BIBTEX));
@@ -309,9 +302,7 @@ public void roundtrip() throws IOException {
309302
ParserResult result = BibtexParser.parse(ImportFormatReader.getReader(testBibtexFile, encoding));
310303

311304
BibDatabaseWriter databaseWriter = new BibDatabaseWriter();
312-
SavePreferences preferences = new SavePreferences();
313-
preferences.setEncoding(encoding);
314-
preferences.setSaveInOriginalOrder(true);
305+
SavePreferences preferences = new SavePreferences().withEncoding(encoding).withSaveInOriginalOrder(true);
315306
BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData(),
316307
new Defaults(BibDatabaseMode.BIBTEX));
317308
StringWriter stringWriter = new StringWriter();
@@ -352,8 +343,7 @@ public void reformatEntryIfAskedToDoSo() throws IOException {
352343
BibDatabaseContext context = new BibDatabaseContext(database, new Defaults(BibDatabaseMode.BIBTEX));
353344

354345
StringWriter stringWriter = new StringWriter();
355-
SavePreferences preferences = new SavePreferences();
356-
preferences.setReformatFile(true);
346+
SavePreferences preferences = new SavePreferences().withReformatFile(true);
357347
databaseWriter.writePartOfDatabase(stringWriter, context, Collections.singletonList(entry), preferences);
358348

359349
Assert.assertEquals(Globals.NEWLINE +
@@ -385,8 +375,7 @@ public void reformatStringIfAskedToDoSo() throws IOException {
385375
database.addString(string);
386376
BibDatabaseContext context = new BibDatabaseContext(database, new Defaults(BibDatabaseMode.BIBTEX));
387377

388-
SavePreferences preferences = new SavePreferences();
389-
preferences.setReformatFile(true);
378+
SavePreferences preferences = new SavePreferences().withReformatFile(true);
390379

391380
StringWriter stringWriter = new StringWriter();
392381
databaseWriter.writePartOfDatabase(stringWriter, context, Collections.emptyList(), preferences);

0 commit comments

Comments
 (0)