001    /*
002     * Copyright 2013-2015 UnboundID Corp.
003     * All Rights Reserved.
004     */
005    /*
006     * Copyright (C) 2015 UnboundID Corp.
007     *
008     * This program is free software; you can redistribute it and/or modify
009     * it under the terms of the GNU General Public License (GPLv2 only)
010     * or the terms of the GNU Lesser General Public License (LGPLv2.1 only)
011     * as published by the Free Software Foundation.
012     *
013     * This program is distributed in the hope that it will be useful,
014     * but WITHOUT ANY WARRANTY; without even the implied warranty of
015     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
016     * GNU General Public License for more details.
017     *
018     * You should have received a copy of the GNU General Public License
019     * along with this program; if not, see <http://www.gnu.org/licenses>.
020     */
021    package com.unboundid.ldap.sdk.unboundidds.controls;
022    
023    
024    
025    import com.unboundid.util.ThreadSafety;
026    import com.unboundid.util.ThreadSafetyLevel;
027    
028    
029    
030    /**
031     * <BLOCKQUOTE>
032     *   <B>NOTE:</B>  This class is part of the Commercial Edition of the UnboundID
033     *   LDAP SDK for Java.  It is not available for use in applications that
034     *   include only the Standard Edition of the LDAP SDK, and is not supported for
035     *   use in conjunction with non-UnboundID products.
036     * </BLOCKQUOTE>
037     * This enum defines the set of result code values that may be included in a
038     * an assured replication server result.
039     */
040    @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE)
041    public enum AssuredReplicationServerResultCode
042    {
043      /**
044       * Indicates that the requested level of assurance was successfully attained.
045       */
046      COMPLETE(0),
047    
048    
049    
050      /**
051       * Indicates that the requested level of assurance could not be attained
052       * before the timeout elapsed.
053       */
054      TIMEOUT(1),
055    
056    
057    
058      /**
059       * Indicates that a replication conflict was encountered that will prevent
060       * the associated operation from being applied to the target server.
061       */
062      CONFLICT(2),
063    
064    
065    
066      /**
067       * Indicates that the target server was shut down while waiting for an
068       * assurance result.
069       */
070      SERVER_SHUTDOWN(3),
071    
072    
073    
074      /**
075       * Indicates that the target server became unavailable while waiting for an
076       * assurance result.
077       */
078      UNAVAILABLE(4),
079    
080    
081    
082      /**
083       * Indicates that the replication assurance engine detected a duplicate
084       * request for the same operation.
085       */
086      DUPLICATE(5);
087    
088    
089    
090      // The integer value for this server result code.
091      private final int intValue;
092    
093    
094    
095      /**
096       * Creates a new assured replication server result code with the specified
097       * integer value.
098       *
099       * @param  intValue  The integer value for this assured replication server
100       *                   result code.
101       */
102      AssuredReplicationServerResultCode(final int intValue)
103      {
104        this.intValue = intValue;
105      }
106    
107    
108    
109      /**
110       * Retrieves the integer value for this assured replication server result
111       * code.
112       *
113       * @return  The integer value for this assured replication server result code.
114       */
115      public int intValue()
116      {
117        return intValue;
118      }
119    
120    
121    
122      /**
123       * Retrieves the assured replication server result code with the specified
124       * integer value.
125       *
126       * @param  intValue  The integer value for the server result code to
127       *                   retrieve.
128       *
129       * @return  The requested assured replication server result code, or
130       *          {@code null} if there is no server result code with the specified
131       *          integer value.
132       */
133      public static AssuredReplicationServerResultCode valueOf(final int intValue)
134      {
135        for (final AssuredReplicationServerResultCode rc : values())
136        {
137          if (rc.intValue == intValue)
138          {
139            return rc;
140          }
141        }
142    
143        return null;
144      }
145    }