001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2006-2008 Sun Microsystems, Inc.
026 */
027 package org.opends.server.replication.protocol;
028
029
030 /**
031 * The version utility class for the replication protocol.
032 */
033 public class ProtocolVersion
034 {
035 /**
036 * Get the version included in the Start Message mean the replication
037 * protocol version used by the server that created the message.
038 *
039 * @return The version used by the server that created the message.
040 */
041 static short CURRENT_VERSION = 1;
042
043 /**
044 * Specifies the current version of the replication protocol.
045 *
046 * @return The current version of the protocol.
047 */
048 public static short currentVersion()
049 {
050 return CURRENT_VERSION;
051 }
052
053 /**
054 * For test purpose.
055 * @param currentVersion The provided current version.
056 */
057 public static void setCurrentVersion(short currentVersion)
058 {
059 CURRENT_VERSION = currentVersion;
060 }
061
062 /**
063 * Specifies the oldest version of the protocol from the provided one
064 * and the current one.
065 *
066 * @param version The version to be compared to the current one.
067 * @return The minimal protocol version.
068 */
069 public static short minWithCurrent(short version)
070 {
071 Short sVersion = Short.valueOf(version);
072 Short newVersion = (sVersion<CURRENT_VERSION?sVersion:CURRENT_VERSION);
073 return newVersion;
074 }
075 }
076