summaryrefslogtreecommitdiff
path: root/src/main/java/com/keuin/kbackupfabric/operation/backup/method/ConfiguredBackupMethod.java
blob: bb80c80bb8de366ecf9b97533a8df2aceb752d10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.keuin.kbackupfabric.operation.backup.method;

import com.keuin.kbackupfabric.operation.backup.feedback.BackupFeedback;

import java.io.IOException;

/**
 * Provide specific backup method, which has been configured with proper settings,
 * such as saving directory and level path.
 */
public interface ConfiguredBackupMethod {

    /**
     * Perform a backup with given method. The backup will be saved as the given name.
     * Note: real file name depends on the backup type.
     *
     * @return backup result.
     */
    BackupFeedback backup() throws IOException;

    boolean restore() throws IOException;

    /**
     * Create backup save directory and do some essential initialization before the backup process.
     *
     * @return false if failed, then the backup process won't proceed.
     */
    boolean touch();

    /**
     * Get the used backup file name.
     *
     * @return the file name.
     */
    String getBackupFileName();

}