1 package com.atlassian.activeobjects.backup;
2
3 import com.atlassian.activeobjects.spi.BackupProgressMonitor;
4 import com.atlassian.dbexporter.progress.ProgressMonitor;
5
6 import static com.google.common.base.Preconditions.checkArgument;
7 import static com.google.common.base.Preconditions.checkNotNull;
8
9 final class ActiveObjectsBackupProgressMonitor implements ProgressMonitor {
10 private final BackupProgressMonitor backupProgressMonitor;
11
12 ActiveObjectsBackupProgressMonitor(BackupProgressMonitor backupProgressMonitor) {
13 this.backupProgressMonitor = checkNotNull(backupProgressMonitor);
14 }
15
16 @Override
17 public void begin(Object... args) {
18 backupProgressMonitor.beginBackup();
19 }
20
21 @Override
22 public void end(Object... args) {
23 backupProgressMonitor.endBackup();
24 }
25
26 @Override
27 public void begin(Task task, Object... args) {
28 switch (task) {
29 case DATABASE_INFORMATION:
30 backupProgressMonitor.beginDatabaseInformationBackup();
31 break;
32 case TABLE_DEFINITION:
33 backupProgressMonitor.beginTableDefinitionsBackup();
34 break;
35 case TABLES_DATA:
36 backupProgressMonitor.beginTablesBackup();
37 break;
38 case TABLE_DATA:
39 checkArgument(args.length == 1);
40 checkArgument(args[0] instanceof String);
41 backupProgressMonitor.beginTableBackup((String) args[0]);
42 break;
43 }
44 }
45
46 @Override
47 public void end(Task task, Object... args) {
48 switch (task) {
49 case DATABASE_INFORMATION:
50 backupProgressMonitor.endDatabaseInformationBackup();
51 break;
52 case TABLE_DEFINITION:
53 backupProgressMonitor.endTableDefinitionsBackup();
54 break;
55 case TABLES_DATA:
56 backupProgressMonitor.endTablesBackup();
57 break;
58 case TABLE_DATA:
59 checkArgument(args.length == 1);
60 checkArgument(args[0] instanceof String);
61 backupProgressMonitor.endTableBackup((String) args[0]);
62 break;
63 }
64 }
65
66 @Override
67 public void totalNumberOfTables(int size) {
68 backupProgressMonitor.updateTotalNumberOfTablesToBackup(size);
69 }
70 }