Skip to content

Commit dfc1d29

Browse files
committed
#950 Add getters to NBackupManager
1 parent 0996154 commit dfc1d29

4 files changed

Lines changed: 136 additions & 7 deletions

File tree

src/docs/asciidoc/release_notes.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,7 @@ See also https://github.com/FirebirdSQL/jaybird/blob/master/devdoc/jdp/jdp-2026-
690690
This change was contributed by https://github.com/FuriousFourier[FuriousFourier^]
691691
* Improvement: Add getters to `BackupManager` and allow "`use default`" to be set (https://github.com/FirebirdSQL/jaybird/issues/948[#948])
692692
* Improvement: Allow "`use default`" (`-1`) on `FBManager#setPageSize` (https://github.com/FirebirdSQL/jaybird/issues/949[#949])
693+
* Improvement: Add getters to `NBackupManager` (https://github.com/FirebirdSQL/jaybird/issues/950[#950])
693694
* ...
694695
695696
[#compatibility-changes]

src/main/org/firebirdsql/management/FBNBackupManager.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,39 +211,79 @@ public void setBackupLevel(int backupLevel) {
211211
this.backupLevel = backupLevel;
212212
}
213213

214+
@Override
215+
public int getBackupLevel() {
216+
return backupLevel;
217+
}
218+
214219
@Override
215220
public void setBackupGuid(@Nullable String guid) {
216221
backupGuid = guid;
217222
}
218223

224+
@Override
225+
public @Nullable String getBackupGuid() {
226+
return backupGuid;
227+
}
228+
219229
@Override
220230
public void setNoDBTriggers(boolean noDBTriggers) {
221231
this.noDBTriggers = noDBTriggers;
222232
}
223233

234+
@Override
235+
public boolean isNoDBTriggers() {
236+
return noDBTriggers;
237+
}
238+
224239
@Override
225240
public void setInPlaceRestore(boolean inPlaceRestore) {
226241
this.inPlaceRestore = inPlaceRestore;
227242
}
228243

244+
@Override
245+
public boolean isInPlaceRestore() {
246+
return inPlaceRestore;
247+
}
248+
229249
@Override
230250
public void setPreserveSequence(boolean preserveSequence) {
231251
this.preserveSequence = preserveSequence;
232252
}
233253

254+
@Override
255+
public boolean isPreserveSequence() {
256+
return preserveSequence;
257+
}
258+
234259
@Override
235260
public void setCleanHistory(boolean cleanHistory) {
236261
this.cleanHistory = cleanHistory;
237262
}
238263

264+
@Override
265+
public boolean isCleanHistory() {
266+
return cleanHistory;
267+
}
268+
239269
@Override
240270
public void setKeepDays(int days) {
241271
keepDays = days;
242272
}
243273

274+
@Override
275+
public int getKeepDays() {
276+
return keepDays;
277+
}
278+
244279
@Override
245280
public void setKeepRows(int rows) {
246281
keepRows = rows;
247282
}
248283

284+
@Override
285+
public int getKeepRows() {
286+
return keepRows;
287+
}
288+
249289
}

src/main/org/firebirdsql/management/NBackupManager.java

Lines changed: 82 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,46 +102,87 @@ public interface NBackupManager extends ServiceManager {
102102
void fixupDatabase() throws SQLException;
103103

104104
/**
105-
* Sets the backup level (0 = full, 1..n = incremental)
105+
* Sets the backup level (0 = full, 1..n = incremental, -1 = not set).
106+
* <p>
107+
* This setting is mutually exclusive with {@link #setBackupGuid(String)} (unless set to {@code -1}). Values are not
108+
* validated client-side, only server-side.
109+
* </p>
106110
*
107111
* @param level
108-
* backup level (e.g. 0 = full backup, 1 = level 1 incremental backup based on level 0 backup
112+
* backup level (e.g. 0 = full backup, 1 = level 1 incremental backup based on level 0 backup, etc.); use
113+
* {@code -1} to clear
114+
* @see #getBackupLevel()
115+
* @see #setBackupGuid(String)
109116
*/
110117
void setBackupLevel(int level);
111118

119+
/**
120+
* @return backup level (e.g. 0 = full backup, 1 = level 1 incremental backup based on level 0 backup, etc.),
121+
* {@code -1} means the backup level is not set (it will either use {@code 0} or the backup GUID)
122+
* @see #setBackupLevel(int)
123+
* @since 7
124+
*/
125+
int getBackupLevel();
126+
112127
/**
113128
* Sets the backup GUID (Firebird 4 and higher only).
114129
* <p>
115130
* The backup GUID is the GUID of a previous backup of the (source) database. This is used by Firebird to back up
116131
* the pages modified since that backup.
117132
* </p>
118133
* <p>
119-
* This setting is mutually exclusive with {@link #setBackupLevel(int)}, but this is only checked server-side.
134+
* This setting is mutually exclusive with {@link #setBackupLevel(int)} (unless set to {@code null}). Values are not
135+
* validated client-side, only server-side.
120136
* </p>
121137
*
122138
* @param guid
123-
* A GUID string of a previous backup, enclosed in braces.
139+
* GUID string of a previous backup, enclosed in braces
140+
* @see #getBackupGuid()
141+
* @see #setBackupLevel(int)
124142
* @since 4.0.4
125143
*/
126144
void setBackupGuid(@Nullable String guid);
127145

146+
/**
147+
* @return GUID string of a previous backup, enclosed in braces
148+
* @see #setBackupGuid(String)
149+
* @since 7
150+
*/
151+
@Nullable String getBackupGuid();
152+
128153
/**
129154
* Sets the option no database triggers when connecting at backup or in-place restore.
130155
*
131156
* @param noDBTriggers
132-
* {@code true} disable db triggers during backup or in-place restore.
157+
* {@code true} disable db triggers during backup or in-place restore
158+
* @see #isNoDBTriggers()
133159
*/
134160
void setNoDBTriggers(boolean noDBTriggers);
135161

162+
/**
163+
* @return {@code true} db triggers during backup or in-place restore are disabled
164+
* @see #setNoDBTriggers(boolean)
165+
* @since 7
166+
*/
167+
boolean isNoDBTriggers();
168+
136169
/**
137170
* Enables in-place restore.
138171
*
139172
* @param inPlaceRestore
140173
* {@code true} to enable in-place restore
174+
* @see #isInPlaceRestore()
141175
* @since 4.0.4
142176
*/
143177
void setInPlaceRestore(boolean inPlaceRestore);
144178

179+
/**
180+
* @return {@code true} in-place restore enabled
181+
* @see #setInPlaceRestore(boolean)
182+
* @since 7
183+
*/
184+
boolean isInPlaceRestore();
185+
145186
/**
146187
* Enables preserve sequence (for fixup or restore).
147188
* <p>
@@ -150,22 +191,40 @@ public interface NBackupManager extends ServiceManager {
150191
*
151192
* @param preserveSequence
152193
* {@code true} to enable preserve sequence
194+
* @see #isPreserveSequence()
153195
* @since 5
154196
*/
155197
void setPreserveSequence(boolean preserveSequence);
156198

199+
/**
200+
* @return {@code true} preserve sequence enabled
201+
* @see #setPreserveSequence(boolean)
202+
* @since 7
203+
*/
204+
boolean isPreserveSequence();
205+
157206
/**
158207
* Enables clean history on backup.
159208
* <p>
160-
* The backup will fail if {@link #setKeepDays(int)} or {@link #setKeepRows(int)} has not been called.
209+
* The backup will fail if {@link #setKeepDays(int)} or {@link #setKeepRows(int)} have not been set.
161210
* </p>
162211
*
163212
* @param cleanHistory
164213
* {@code true} to enable clean history
214+
* @see #isCleanHistory()
215+
* @see #setKeepDays(int)
216+
* @see #setKeepRows(int)
165217
* @since 4.0.7
166218
*/
167219
void setCleanHistory(boolean cleanHistory);
168220

221+
/**
222+
* @return {@code true} clean history enabled
223+
* @see #setCleanHistory(boolean)
224+
* @since 7
225+
*/
226+
boolean isCleanHistory();
227+
169228
/**
170229
* Sets the number of days of backup history to keep.
171230
* <p>
@@ -178,12 +237,20 @@ public interface NBackupManager extends ServiceManager {
178237
*
179238
* @param days
180239
* number of days to keep history when cleaning, or {@code -1} to clear current value
240+
* @see #getKeepDays()
181241
* @see #setCleanHistory(boolean)
182242
* @see #setKeepRows(int)
183243
* @since 4.0.7
184244
*/
185245
void setKeepDays(int days);
186246

247+
/**
248+
* @return number of days to keep history when cleaning, or {@code -1} if not set
249+
* @see #setKeepDays(int)
250+
* @since 7
251+
*/
252+
int getKeepDays();
253+
187254
/**
188255
* Sets the number of rows of backup history to keep (this includes the row created by the backup).
189256
* <p>
@@ -196,10 +263,18 @@ public interface NBackupManager extends ServiceManager {
196263
*
197264
* @param rows
198265
* number of rows to keep history when cleaning, or {@code -1} to clear current value
266+
* @see #getKeepRows()
199267
* @see #setCleanHistory(boolean)
200268
* @see #setKeepDays(int)
201269
* @since 4.0.7
202270
*/
203271
void setKeepRows(int rows);
204-
272+
273+
/**
274+
* @return number of rows to keep history when cleaning, or {@code -1} if not set
275+
* @see #setKeepRows(int)
276+
* @since 7
277+
*/
278+
int getKeepRows();
279+
205280
}

src/test/org/firebirdsql/management/FBNBackupManagerTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ void backupWithGuid() throws Exception {
8686
MappedPath backup2 = getTempPath("backup2.nbk");
8787
manager.setBackupFile(backup2.toServerPath());
8888
manager.setBackupGuid(guid);
89+
assertEquals(guid, manager.getBackupGuid(), "backupGuid");
8990
manager.backupDatabase();
9091

9192
manager.clearBackupFiles();
@@ -151,7 +152,9 @@ && getDefaultSupportInfo().supportsNBackupInPlaceRestore(),
151152
}
152153

153154
manager.clearBackupFiles();
155+
assertFalse(manager.isInPlaceRestore(), "inPlaceRestore");
154156
manager.setInPlaceRestore(true);
157+
assertTrue(manager.isInPlaceRestore(), "inPlaceRestore");
155158
manager.addBackupFile(backup2.toServerPath());
156159
manager.restoreDatabase();
157160

@@ -199,7 +202,9 @@ && getDefaultSupportInfo().supportsNBackupPreserveSequence(),
199202
}
200203

201204
manager.setDatabase(getDatabasePath());
205+
assertFalse(manager.isPreserveSequence(), "preserveSequence");
202206
manager.setPreserveSequence(true);
207+
assertTrue(manager.isPreserveSequence(), "preserveSequence");
203208
manager.fixupDatabase();
204209

205210
final String afterFixupDbGuid = getCurrentDbGuid();
@@ -235,8 +240,12 @@ void restore_withPreserveSequence() throws Exception {
235240
@Test
236241
void backupCleanHistoryWithKeepDays() {
237242
assumeTrue(getDefaultSupportInfo().supportsNBackupCleanHistory(), "Requires NBackup clean history support");
243+
assertFalse(manager.isCleanHistory(), "cleanHistory");
238244
manager.setCleanHistory(true);
245+
assertTrue(manager.isCleanHistory(), "cleanHistory");
246+
assertEquals(-1, manager.getKeepDays(), "keepDays");
239247
manager.setKeepDays(5);
248+
assertEquals(5, manager.getKeepDays(), "keepDays");
240249

241250
MappedPath backup1 = getTempPath("backup1.nbk");
242251
manager.setBackupFile(backup1.toServerPath());
@@ -249,8 +258,12 @@ void backupCleanHistoryWithKeepDays() {
249258
@Test
250259
void backupCleanHistoryWithKeepRows() {
251260
assumeTrue(getDefaultSupportInfo().supportsNBackupCleanHistory(), "Requires NBackup clean history support");
261+
assertFalse(manager.isCleanHistory(), "cleanHistory");
252262
manager.setCleanHistory(true);
263+
assertTrue(manager.isCleanHistory(), "cleanHistory");
264+
assertEquals(-1, manager.getKeepRows(), "keepRows");
253265
manager.setKeepRows(5);
266+
assertEquals(5, manager.getKeepRows(), "keepRows");
254267

255268
MappedPath backup1 = getTempPath("backup1.nbk");
256269
manager.setBackupFile(backup1.toServerPath());

0 commit comments

Comments
 (0)