From 56e752193bfb90d11cfe73c35a24e576b9b18c87 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 03 Jul 2013 11:03:06 +0000
Subject: [PATCH] First stab at having debuggable ACIs.

---
 opends/src/server/org/opends/server/authorization/dseecompat/DNS.java |   54 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 31 insertions(+), 23 deletions(-)

diff --git a/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java b/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java
index 996c196..81f3d60 100644
--- a/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java
+++ b/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java
@@ -23,54 +23,46 @@
  *
  *
  *      Copyright 2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS
  */
-
 package org.opends.server.authorization.dseecompat;
 
-import org.opends.messages.Message;
-
-import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.messages.AccessControlMessages.*;
 import static org.opends.server.authorization.dseecompat.Aci.*;
+import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
-import org.opends.server.loggers.debug.DebugTracer;
-
 import java.net.InetAddress;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+
+import org.opends.messages.Message;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 /**
  * This class implements the dns bind rule keyword.
  */
 public class DNS implements KeywordBindRule {
+
   /**
    * The tracer object for the debug logger.
    */
   private static final DebugTracer TRACER = getTracer();
 
+    /** List of patterns to match against. */
+    private List<String> patterns = null;
 
-    /*
-     * List of patterns to match against.
-     */
-    LinkedList<String> patterns=null;
-
-    /*
-     * The enumeration representing the bind rule type of the DNS rule.
-     */
+    /** The enumeration representing the bind rule type of the DNS rule. */
     private EnumBindRuleType type=null;
 
-    /*
-     *  Regular expression group used to match a dns rule.
-     */
+    /** Regular expression group used to match a dns rule. */
     private static final String valueRegex = "([a-zA-Z0-9\\.\\-\\*]+)";
 
-    /*
-     * Regular expression group used to match one or more DNS values.
-     */
+    /** Regular expression group used to match one or more DNS values. */
     private static final String valuesRegExGroup =
             valueRegex + ZERO_OR_MORE_WHITESPACE +
             "(," +  ZERO_OR_MORE_WHITESPACE  +  valueRegex  +  ")*";
@@ -80,7 +72,7 @@
      * @param patterns List of dns patterns to match against.
      * @param type An enumeration representing the bind rule type.
      */
-    DNS(LinkedList<String> patterns, EnumBindRuleType type) {
+    DNS(List<String> patterns, EnumBindRuleType type) {
         this.patterns=patterns;
         this.type=type;
     }
@@ -100,7 +92,7 @@
             Message message = WARN_ACI_SYNTAX_INVALID_DNS_EXPRESSION.get(expr);
             throw new AciException(message);
         }
-        LinkedList<String>dns=new LinkedList<String>();
+        List<String> dns = new LinkedList<String>();
         int valuePos = 1;
         Pattern valuePattern = Pattern.compile(valueRegex);
         Matcher valueMatcher = valuePattern.matcher(expr);
@@ -181,6 +173,7 @@
      * @param evalCtx  An evaluation context to use in the evaluation.
      * @return An enumeration evaluation result.
      */
+    @Override
     public EnumEvalResult evaluate(AciEvalContext evalCtx) {
         EnumEvalResult matched=EnumEvalResult.FALSE;
         String[] remoteHost = evalCtx.getHostName().split("\\.", -1);
@@ -206,7 +199,7 @@
      * the bind rule expression. The first array slot may be a wild-card "*".
      * @return  True if the remote hostname matches the pattern.
      */
-      boolean evalHostName(String[] remoteHostName, String[] pat) {
+    boolean evalHostName(String[] remoteHostName, String[] pat) {
       boolean wildCard=pat[0].equals("*");
       //Check if there is a single wild-card.
       if(pat.length == 1 && wildCard)
@@ -226,4 +219,19 @@
                 return false;
       return true;
     }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        toString(sb);
+        return sb.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public final void toString(StringBuilder buffer) {
+        buffer.append(super.toString());
+    }
+
 }

--
Gitblit v1.10.0