From 64e8f8d8ed46e489adbe2d2b2ee9a283f2c663c8 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 12 Dec 2013 10:40:35 +0000
Subject: [PATCH] VirtualAttributeRule.java: Code cleanup

---
 opends/src/server/org/opends/server/types/VirtualAttributeRule.java |  148 +++++++++++++++++++------------------------------
 1 files changed, 57 insertions(+), 91 deletions(-)

diff --git a/opends/src/server/org/opends/server/types/VirtualAttributeRule.java b/opends/src/server/org/opends/server/types/VirtualAttributeRule.java
index 7966e1e..c23f707 100644
--- a/opends/src/server/org/opends/server/types/VirtualAttributeRule.java
+++ b/opends/src/server/org/opends/server/types/VirtualAttributeRule.java
@@ -23,13 +23,11 @@
  *
  *
  *      Copyright 2008 Sun Microsystems, Inc.
- *      Portions Copyright 2011 ForgeRock AS
+ *      Portions Copyright 2011-2013 ForgeRock AS
  */
 package org.opends.server.types;
 
-
-
-import java.util.Iterator;
+import java.util.Collection;
 import java.util.Set;
 
 import org.opends.server.admin.std.meta.VirtualAttributeCfgDefn;
@@ -37,13 +35,12 @@
 import org.opends.server.api.Group;
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.util.Validator.*;
 
-
-
 /**
  * This class defines a virtual attribute rule, which associates a
  * virtual attribute provider with its associated configuration,
@@ -65,56 +62,62 @@
    */
   private static final DebugTracer TRACER = getTracer();
 
-  // The attribute type for which the values should be generated.
+  /** The attribute type for which the values should be generated. */
   private final AttributeType attributeType;
 
-  // The set of base DNs for branches that are eligible to have this
-  // virtual attribute.
+  /**
+   * The set of base DNs for branches that are eligible to have this virtual
+   * attribute.
+   */
   private final Set<DN> baseDNs;
 
-  // The scope of entries eligible to have this virtual attribute,
-  // under the base DNs.
+  /**
+   * The scope of entries eligible to have this virtual attribute, under the
+   * base DNs.
+   */
   private final SearchScope scope;
 
-  // The set of DNs for groups whose members are eligible to have this
-  // virtual attribute.
+  /**
+   * The set of DNs for groups whose members are eligible to have this virtual
+   * attribute.
+   */
   private final Set<DN> groupDNs;
 
-  // The set of search filters for entries that are eligible to have
-  // this virtual attribute.
+  /**
+   * The set of search filters for entries that are eligible to have this
+   * virtual attribute.
+   */
   private final Set<SearchFilter> filters;
 
-  // The virtual attribute provider used to generate the values.
+  /** The virtual attribute provider used to generate the values. */
   private final VirtualAttributeProvider<
                      ? extends VirtualAttributeCfg> provider;
 
-  // The behavior that should be exhibited for entries that already
-  // have real values for the target attribute.
+  /**
+   * The behavior that should be exhibited for entries that already have real
+   * values for the target attribute.
+   */
   private final VirtualAttributeCfgDefn.ConflictBehavior
                      conflictBehavior;
 
 
 
   /**
-   * Creates a new virtual attribute rule with the provided
-   * information.
+   * Creates a new virtual attribute rule with the provided information.
    *
    * @param  attributeType     The attribute type for which the values
    *                           should be generated.
    * @param  provider          The virtual attribute provider to use
    *                           to generate the values.
    * @param  baseDNs           The set of base DNs for branches that
-   *                           are eligible to have this virtual
-   *                           attribute.
+   *                           are eligible to have this virtual attribute.
    * @param  scope             The scope of entries, related to the
    *                           base DNs, that are eligible to have
    *                           this virtual attribute.
    * @param  groupDNs          The set of DNs for groups whose members
-   *                           are eligible to have this virtual
-   *                           attribute.
+   *                           are eligible to have this virtual attribute.
    * @param  filters           The set of search filters for entries
-   *                           that are eligible to have this virtual
-   *                           attribute.
+   *                           that are eligible to have this virtual attribute.
    * @param  conflictBehavior  The behavior that the server should
    *                           exhibit for entries that already have
    *                           one or more real values for the target
@@ -143,11 +146,9 @@
 
 
   /**
-   * Retrieves the attribute type for which the values should be
-   * generated.
+   * Retrieves the attribute type for which the values should be generated.
    *
-   * @return  The attribute type for which the values should be
-   *          generated.
+   * @return  The attribute type for which the values should be generated.
    */
   public AttributeType getAttributeType()
   {
@@ -158,11 +159,9 @@
 
   /**
    *
-   * Retrieves the virtual attribute provider used to generate the
-   * values.
+   * Retrieves the virtual attribute provider used to generate the values.
    *
-   * @return  The virtual attribute provider to use to generate the
-   *          values.
+   * @return  The virtual attribute provider to use to generate the values.
    */
   public VirtualAttributeProvider<? extends VirtualAttributeCfg>
               getProvider()
@@ -229,8 +228,7 @@
 
   /**
    * Retrieves the behavior that the server should exhibit for entries
-   * that already have one or more real values for the target
-   * attribute.
+   * that already have one or more real values for the target attribute.
    *
    * @return  The behavior that the server should exhibit for entries
    *          that already have one or more real values for the target
@@ -252,8 +250,7 @@
    * @param  entry  The entry for which to make the determination.
    *
    * @return  {@code true} if this virtual attribute rule may be used
-   *          to generate values for the entry, or {@code false} if
-   *          not.
+   *          to generate values for the entry, or {@code false} if not.
    */
   public boolean appliesToEntry(Entry entry)
   {
@@ -261,9 +258,9 @@
     // potentially most expensive are done last.  First, check to see
     // if real values should override virtual ones and if so whether
     // the entry already has virtual values.
-    if ((conflictBehavior == VirtualAttributeCfgDefn.ConflictBehavior.
-                                  REAL_OVERRIDES_VIRTUAL) &&
-        entry.hasAttribute(attributeType))
+    if (conflictBehavior == VirtualAttributeCfgDefn.ConflictBehavior.
+                                REAL_OVERRIDES_VIRTUAL
+        && entry.hasAttribute(attributeType))
     {
       return false;
     }
@@ -330,7 +327,7 @@
         {
           Group group =
                DirectoryServer.getGroupManager().getGroupInstance(dn);
-          if ((group != null) && group.isMember(entry))
+          if (group != null && group.isMember(entry))
           {
             found = true;
             break;
@@ -360,8 +357,9 @@
   /**
    * Retrieves a string representation of this virtual attribute rule.
    *
-   * @return  A string representation of this virutal attribute rule.
+   * @return  A string representation of this virtual attribute rule.
    */
+  @Override
   public String toString()
   {
     StringBuilder buffer = new StringBuilder();
@@ -375,68 +373,36 @@
    * Appends a string representation of this virtual attribute rule to
    * the provided buffer.
    *
-   * @param  buffer  The buffer to which the information should be
-   *                 written.
+   * @param  buffer  The buffer to which the information should be written.
    */
   public void toString(StringBuilder buffer)
   {
     buffer.append("VirtualAttributeRule(attrType=");
     buffer.append(attributeType.getNameOrOID());
-    buffer.append(", providerDN=\"");
-    buffer.append(provider.getClass().getName());
+    buffer.append(", providerDN=\"").append(provider.getClass().getName());
 
     buffer.append("\", baseDNs={");
-    if (! baseDNs.isEmpty())
-    {
-      buffer.append("\"");
-      Iterator<DN> iterator = baseDNs.iterator();
-      buffer.append(iterator.next());
+    append(buffer, baseDNs);
 
-      while (iterator.hasNext())
-      {
-        buffer.append("\", \"");
-        buffer.append(iterator.next());
-      }
+    buffer.append("}, scope=").append(scope.toString());
 
-      buffer.append("\"");
-    }
-    buffer.append("}, scope=");
-    buffer.append(scope.toString());
     buffer.append(", groupDNs={");
-    if (! groupDNs.isEmpty())
-    {
-      buffer.append("\"");
-      Iterator<DN> iterator = groupDNs.iterator();
-      buffer.append(iterator.next());
-
-      while (iterator.hasNext())
-      {
-        buffer.append("\", \"");
-        buffer.append(iterator.next());
-      }
-
-      buffer.append("\"");
-    }
-
+    append(buffer, groupDNs);
     buffer.append("}, filters={");
-    if (! filters.isEmpty())
+    append(buffer, filters);
+
+    buffer.append("}, conflictBehavior=").append(conflictBehavior);
+    buffer.append(")");
+  }
+
+  private void append(StringBuilder buffer, Collection<?> col)
+  {
+    if (!col.isEmpty())
     {
       buffer.append("\"");
-      Iterator<SearchFilter> iterator = filters.iterator();
-      buffer.append(iterator.next());
-
-      while (iterator.hasNext())
-      {
-        buffer.append("\", \"");
-        buffer.append(iterator.next());
-      }
-
+      buffer.append(collectionToString(col, "\", \""));
       buffer.append("\"");
     }
-
-    buffer.append("}, conflictBehavior=");
-    buffer.append(conflictBehavior);
-    buffer.append(")");
   }
 }
 

--
Gitblit v1.10.0