summaryrefslogtreecommitdiff
path: root/lang/java/src/com/sleepycat/db/ReplicationManagerConnectionStatus.java
blob: b62342d9f6f809f398124edba3a7a92f9c674db4 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*-
 * See the file LICENSE for redistribution information.
 *
 * Copyright (c) 2011, 2012 Oracle and/or its affiliates.  All rights reserved.
 *
 * $Id$
 */

package com.sleepycat.db;

import com.sleepycat.db.internal.DbConstants;

/**
Describes the connection status of a replication site.  Returned from the {@link
ReplicationManagerSiteInfo#getConnectionStatus} method.
*/
public final class ReplicationManagerConnectionStatus implements Cloneable {
    /**
     * The site is connected.
     */
    public static final ReplicationManagerConnectionStatus CONNECTED =
        new ReplicationManagerConnectionStatus("CONNECTED", DbConstants.DB_REPMGR_CONNECTED);

    /**
     * The site is disconnected.
     */
    public static final ReplicationManagerConnectionStatus DISCONNECTED =
        new ReplicationManagerConnectionStatus("DISCONNECTED", DbConstants.DB_REPMGR_DISCONNECTED);

    /**
     * The connection status cannot be determined.
     */
    public static final ReplicationManagerConnectionStatus UNKNOWN =
        new ReplicationManagerConnectionStatus("UNKNOWN", 0);

    /* package */
    static ReplicationManagerConnectionStatus fromInt(int which) {
        switch(which) {
        case DbConstants.DB_REPMGR_CONNECTED:
            return CONNECTED;
        case DbConstants.DB_REPMGR_DISCONNECTED:
            return DISCONNECTED;
        case 0:
            return UNKNOWN;
        default:
            throw new IllegalArgumentException("Unknown connection status: " + which);
        }
    }

    private String configName;
    private int status;

    private ReplicationManagerConnectionStatus(final String configName, final int status) {
        this.configName = configName;
        this.status = status;
    }

    /* package */
    int getStatus() {
        return status;
    }

    /** {@inheritDoc} */
    public String toString() {
        return "ReplicationManagerConnectionStatus." + configName;
    }
}