/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002, 2010 Oracle and/or its affiliates. All rights reserved. * * $Id$ */ package com.sleepycat.db; import com.sleepycat.db.internal.DbConstants; /** This class provides definitions of the various start policies thatcan be specified when starting a replication client using the{@link com.sleepycat.db.Environment#replicationManagerStart Environment.replicationManagerStart} call. */ public final class ReplicationManagerStartPolicy { /** Start as a master site, and do not call for an election. Note there must never be more than a single master in any replication group, and only one site should ever be started with the DB_REP_MASTER flag specified. */ public static final ReplicationManagerStartPolicy REP_MASTER = new ReplicationManagerStartPolicy( "REP_MASTER", DbConstants.DB_REP_MASTER); /** Start as a client site, and do not call for an election. */ public static final ReplicationManagerStartPolicy REP_CLIENT = new ReplicationManagerStartPolicy( "REP_CLIENT", DbConstants.DB_REP_CLIENT); /** Start as a client, and call for an election if no master is found. */ public static final ReplicationManagerStartPolicy REP_ELECTION = new ReplicationManagerStartPolicy( "REP_ELECTION", DbConstants.DB_REP_ELECTION); /* package */ static ReplicationManagerStartPolicy fromInt(int type) { switch(type) { case DbConstants.DB_REP_MASTER: return REP_MASTER; case DbConstants.DB_REP_CLIENT: return REP_CLIENT; case DbConstants.DB_REP_ELECTION: return REP_ELECTION; default: throw new IllegalArgumentException( "Unknown rep start policy: " + type); } } private String statusName; private int id; private ReplicationManagerStartPolicy(final String statusName, final int id) { this.statusName = statusName; this.id = id; } /* package */ int getId() { return id; } /** {@inheritDoc} */ public String toString() { return "ReplicationManagerStartPolicy." + statusName; } }