View Javadoc
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  }