From 0a9135e3444bbefde6188f456b9c9772a816096d Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 18 Sep 2013 15:17:14 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java b/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java
index 2bbda8a..f0b1a1e 100644
--- a/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java
+++ b/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java
@@ -27,8 +27,6 @@
  */
 package org.opends.server.replication.common;
 
-import static org.opends.messages.ReplicationMessages.*;
-
 import java.util.Iterator;
 import java.util.Map;
 import java.util.TreeMap;
@@ -36,9 +34,12 @@
 import org.opends.messages.Category;
 import org.opends.messages.Message;
 import org.opends.messages.Severity;
+import org.opends.server.types.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 
+import static org.opends.messages.ReplicationMessages.*;
+
 /**
  * This object is used to store a list of ServerState object, one by replication
  * domain. Globally, it is the generalization of ServerState (that applies to
@@ -47,19 +48,19 @@
  * MultiDomainServerState is also known as "cookie" and is used with the
  * cookie-based changelog.
  */
-public class MultiDomainServerState implements Iterable<String>
+public class MultiDomainServerState implements Iterable<DN>
 {
   /**
    * The list of (domain service id, ServerState).
    */
-  private Map<String, ServerState> list;
+  private Map<DN, ServerState> list;
 
   /**
    * Creates a new empty object.
    */
   public MultiDomainServerState()
   {
-    list = new TreeMap<String, ServerState>();
+    list = new TreeMap<DN, ServerState>();
   }
 
   /**
@@ -96,7 +97,7 @@
    *
    * @return a boolean indicating if the update was meaningful.
    */
-  public boolean update(String baseDN, CSN csn)
+  public boolean update(DN baseDN, CSN csn)
   {
     if (csn == null)
       return false;
@@ -125,9 +126,9 @@
    * @param baseDN       The provided baseDN.
    * @param serverState  The provided serverState.
    */
-  public void update(String baseDN, ServerState serverState)
+  public void update(DN baseDN, ServerState serverState)
   {
-    list.put(baseDN,serverState.duplicate());
+    list.put(baseDN, serverState.duplicate());
   }
 
   /**
@@ -140,7 +141,7 @@
     String res = "";
     if ((list != null) && (!list.isEmpty()))
     {
-      for (String baseDN  : list.keySet())
+      for (DN baseDN : list.keySet())
       {
         ServerState ss = list.get(baseDN);
         res += baseDN + ":" + ss + ";";
@@ -173,7 +174,7 @@
    * {@inheritDoc}
    */
   @Override
-  public Iterator<String> iterator()
+  public Iterator<DN> iterator()
   {
     return list.keySet().iterator();
   }
@@ -195,7 +196,7 @@
    */
   public boolean cover(MultiDomainServerState covered)
   {
-    for (String baseDN : covered.list.keySet())
+    for (DN baseDN : covered.list.keySet())
     {
       ServerState state = list.get(baseDN);
       ServerState coveredState = covered.list.get(baseDN);
@@ -215,11 +216,10 @@
    * @exception DirectoryException when an error occurs
    * @return the split state.
    */
-  public static Map<String,ServerState> splitGenStateToServerStates(
-      String multidomainserverstate)
-      throws DirectoryException
+  public static Map<DN, ServerState> splitGenStateToServerStates(
+      String multidomainserverstate) throws DirectoryException
   {
-    Map<String, ServerState> startStates = new TreeMap<String, ServerState>();
+    Map<DN, ServerState> startStates = new TreeMap<DN, ServerState>();
     if ((multidomainserverstate != null)
         && (multidomainserverstate.length() > 0))
     {
@@ -250,7 +250,7 @@
               serverStateByDomain.update(fromCSN);
             }
           }
-          startStates.put(domainBaseDN, serverStateByDomain);
+          startStates.put(DN.decode(domainBaseDN), serverStateByDomain);
         }
       }
       catch (DirectoryException de)

--
Gitblit v1.10.0