1 package com.atlassian.activeobjects.backup;
2
3 import com.atlassian.activeobjects.spi.RestoreProgressMonitor;
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 ActiveObjectsRestoreProgressMonitor implements ProgressMonitor {
10 private final RestoreProgressMonitor backupProgressMonitor;
11
12 ActiveObjectsRestoreProgressMonitor(RestoreProgressMonitor restoreProgressMonitor) {
13 this.backupProgressMonitor = checkNotNull(restoreProgressMonitor);
14 }
15
16 @Override
17 public void begin(Object... args) {
18 backupProgressMonitor.beginRestore();
19 }
20
21 @Override
22 public void end(Object... args) {
23 backupProgressMonitor.endRestore();
24 }
25
26 @Override
27 public void begin(Task task, Object... args) {
28 switch (task) {
29 case DATABASE_INFORMATION:
30 backupProgressMonitor.beginDatabaseInformationRestore();
31 break;
32 case TABLE_DEFINITION:
33 backupProgressMonitor.beginTableDefinitionsRestore();
34 break;
35 case TABLES_DATA:
36 backupProgressMonitor.beginTablesRestore();
37 break;
38 case TABLE_DATA:
39 checkArgument(args.length == 1);
40 checkArgument(args[0] instanceof String);
41 backupProgressMonitor.beginTableDataRestore((String) args[0]);
42 break;
43 case TABLE_CREATION:
44 checkArgument(args.length == 1);
45 checkArgument(args[0] instanceof String);
46 backupProgressMonitor.beginTableCreationRestore((String) args[0]);
47 break;
48 case TABLE_ROW:
49 backupProgressMonitor.beginTableRowRestore();
50 break;
51 }
52 }
53
54 @Override
55 public void end(Task task, Object... args) {
56 switch (task) {
57 case DATABASE_INFORMATION:
58 backupProgressMonitor.endDatabaseInformationRestore();
59 break;
60 case TABLE_DEFINITION:
61 backupProgressMonitor.endTableDefinitionsRestore();
62 break;
63 case TABLES_DATA:
64 backupProgressMonitor.endTablesRestore();
65 break;
66 case TABLE_DATA:
67 checkArgument(args.length == 1);
68 checkArgument(args[0] instanceof String);
69 backupProgressMonitor.endTableDataRestore((String) args[0]);
70 break;
71 case TABLE_CREATION:
72 checkArgument(args.length == 1);
73 checkArgument(args[0] instanceof String);
74 backupProgressMonitor.endTableCreationRestore((String) args[0]);
75 break;
76 case TABLE_ROW:
77 backupProgressMonitor.endTableRowRestore();
78 break;
79 }
80 }
81
82 @Override
83 public void totalNumberOfTables(int size) {
84 backupProgressMonitor.updateTotalNumberOfTablesToRestore(size);
85 }
86 }