From 70b0e3d553e5a2a896337730b6c0540488b78f08 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 10 Dec 2013 12:43:16 +0000
Subject: [PATCH] OpenDJ 3 : config framework

---
 opendj-admin/src/main/java/org/opends/server/admin/condition/Conditions.java |  295 +++++++++++++++++++++++++----------------------------------
 1 files changed, 125 insertions(+), 170 deletions(-)

diff --git a/opendj-admin/src/main/java/org/opends/server/admin/condition/Conditions.java b/opendj-admin/src/main/java/org/opends/server/admin/condition/Conditions.java
index 4f057ab..d39de3e 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/condition/Conditions.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/condition/Conditions.java
@@ -26,212 +26,167 @@
  */
 package org.opends.server.admin.condition;
 
-
-
+import org.forgerock.opendj.ldap.ErrorResultException;
 import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.client.AuthorizationException;
-import org.opends.server.admin.client.CommunicationException;
 import org.opends.server.admin.client.ManagedObject;
 import org.opends.server.admin.client.ManagementContext;
 import org.opends.server.admin.server.ServerManagedObject;
 import org.opends.server.config.ConfigException;
 
-
-
 /**
- * This class consists exclusively of static methods that operate on
- * or return conditions.
+ * This class consists exclusively of static methods that operate on or return
+ * conditions.
  */
 public final class Conditions {
 
-  /**
-   * A condition which always evaluates to <code>false</code>.
-   */
-  public static final Condition FALSE = new Condition() {
+    /**
+     * A condition which always evaluates to <code>false</code>.
+     */
+    public static final Condition FALSE = new Condition() {
+
+        /**
+         * {@inheritDoc}
+         */
+        public boolean evaluate(ManagementContext context, ManagedObject<?> managedObject) throws ErrorResultException {
+            return false;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        public boolean evaluate(ServerManagedObject<?> managedObject) throws ConfigException {
+            return false;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        public void initialize(AbstractManagedObjectDefinition<?, ?> d) throws Exception {
+            // No implementation required.
+        }
+
+    };
 
     /**
-     * {@inheritDoc}
+     * A condition which always evaluates to <code>true</code>.
      */
-    public boolean evaluate(ManagementContext context,
-        ManagedObject<?> managedObject) throws AuthorizationException,
-        CommunicationException {
-      return false;
-    }
+    public static final Condition TRUE = new Condition() {
 
+        /**
+         * {@inheritDoc}
+         */
+        public boolean evaluate(ManagementContext context, ManagedObject<?> managedObject) throws ErrorResultException {
+            return true;
+        }
 
+        /**
+         * {@inheritDoc}
+         */
+        public boolean evaluate(ServerManagedObject<?> managedObject) throws ConfigException {
+            return true;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        public void initialize(AbstractManagedObjectDefinition<?, ?> d) throws Exception {
+            // No implementation required.
+        }
+
+    };
 
     /**
-     * {@inheritDoc}
+     * Creates a condition which evaluates to <code>true</code> if and only if
+     * all of its sub-conditions are <code>true</code>.
+     *
+     * @param conditions
+     *            The sub-conditions which be combined using a logical AND.
+     * @return Returns a condition which evaluates to <code>true</code> if and
+     *         only if all of its sub-conditions are <code>true</code>.
      */
-    public boolean evaluate(ServerManagedObject<?> managedObject)
-        throws ConfigException {
-      return false;
+    public static Condition and(Condition... conditions) {
+        return new ANDCondition(conditions);
     }
 
-
-
     /**
-     * {@inheritDoc}
+     * Creates a condition which evaluates to <code>true</code> if and only if a
+     * property contains a particular value.
+     *
+     * @param propertyName
+     *            The property name.
+     * @param propertyStringValue
+     *            The string representation of the required property value.
+     * @return Returns a condition which evaluates to <code>true</code> if and
+     *         only if a property contains a particular value.
      */
-    public void initialize(AbstractManagedObjectDefinition<?, ?> d)
-        throws Exception {
-      // No implementation required.
+    public static Condition contains(String propertyName, String propertyStringValue) {
+        return new ContainsCondition(propertyName, propertyStringValue);
     }
 
-  };
-
-  /**
-   * A condition which always evaluates to <code>true</code>.
-   */
-  public static final Condition TRUE = new Condition() {
-
     /**
-     * {@inheritDoc}
+     * Creates a condition which evaluates to <code>false</code> if and only if
+     * the first sub-condition evaluates to <code>true</code> and the second
+     * sub-condition evaluates to <code>false</code>. This can be used to
+     * represent if-then relationships.
+     *
+     * @param premise
+     *            The sub-condition which, when <code>true</code> implies that
+     *            the implication sub-condition must also be <code>true</code>.
+     * @param implication
+     *            The sub-condition which, must be <code>true</code> when the
+     *            premise is <code>true</code>.
+     * @return Returns a condition which evaluates to <code>false</code> if and
+     *         only if the first sub-condition evaluates to <code>true</code>
+     *         and the second sub-condition evaluates to <code>false</code>.
      */
-    public boolean evaluate(ManagementContext context,
-        ManagedObject<?> managedObject) throws AuthorizationException,
-        CommunicationException {
-      return true;
+    public static Condition implies(Condition premise, Condition implication) {
+        return or(not(premise), implication);
     }
 
-
-
     /**
-     * {@inheritDoc}
+     * Creates a condition which evaluates to <code>true</code> if and only if a
+     * particular property has any values specified.
+     *
+     * @param propertyName
+     *            The property name.
+     * @return Returns a condition which evaluates to <code>true</code> if and
+     *         only if a particular property has any values specified.
      */
-    public boolean evaluate(ServerManagedObject<?> managedObject)
-        throws ConfigException {
-      return true;
+    public static Condition isPresent(String propertyName) {
+        return new IsPresentCondition(propertyName);
     }
 
-
-
     /**
-     * {@inheritDoc}
+     * Creates a condition which evaluates to <code>true</code> if the
+     * sub-condition is <code>false</code>, or <code>false</code> if the
+     * sub-condition is <code>true</code>.
+     *
+     * @param condition
+     *            The sub-condition which will be inverted.
+     * @return Returns a condition which evaluates to <code>true</code> if the
+     *         sub-condition is <code>false</code>, or <code>false</code> if the
+     *         sub-condition is <code>true</code>.
      */
-    public void initialize(AbstractManagedObjectDefinition<?, ?> d)
-        throws Exception {
-      // No implementation required.
+    public static Condition not(Condition condition) {
+        return new NOTCondition(condition);
     }
 
-  };
+    /**
+     * Creates a condition which evaluates to <code>false</code> if and only if
+     * all of its sub-conditions are <code>false</code>.
+     *
+     * @param conditions
+     *            The sub-conditions which be combined using a logical OR.
+     * @return Returns a condition which evaluates to <code>false</code> if and
+     *         only if all of its sub-conditions are <code>false</code>.
+     */
+    public static Condition or(Condition... conditions) {
+        return new ORCondition(conditions);
+    }
 
-
-
-  /**
-   * Creates a condition which evaluates to <code>true</code> if and
-   * only if all of its sub-conditions are <code>true</code>.
-   *
-   * @param conditions
-   *          The sub-conditions which be combined using a logical
-   *          AND.
-   * @return Returns a condition which evaluates to <code>true</code>
-   *         if and only if all of its sub-conditions are
-   *         <code>true</code>.
-   */
-  public static Condition and(Condition... conditions) {
-    return new ANDCondition(conditions);
-  }
-
-
-
-  /**
-   * Creates a condition which evaluates to <code>true</code> if and
-   * only if a property contains a particular value.
-   *
-   * @param propertyName
-   *          The property name.
-   * @param propertyStringValue
-   *          The string representation of the required property
-   *          value.
-   * @return Returns a condition which evaluates to <code>true</code>
-   *         if and only if a property contains a particular value.
-   */
-  public static Condition contains(String propertyName,
-      String propertyStringValue) {
-    return new ContainsCondition(propertyName, propertyStringValue);
-  }
-
-
-
-  /**
-   * Creates a condition which evaluates to <code>false</code> if
-   * and only if the first sub-condition evaluates to
-   * <code>true</code> and the second sub-condition evaluates to
-   * <code>false</code>. This can be used to represent if-then
-   * relationships.
-   *
-   * @param premise
-   *          The sub-condition which, when <code>true</code>
-   *          implies that the implication sub-condition must also be
-   *          <code>true</code>.
-   * @param implication
-   *          The sub-condition which, must be <code>true</code>
-   *          when the premise is <code>true</code>.
-   * @return Returns a condition which evaluates to <code>false</code>
-   *         if and only if the first sub-condition evaluates to
-   *         <code>true</code> and the second sub-condition
-   *         evaluates to <code>false</code>.
-   */
-  public static Condition implies(Condition premise, Condition implication) {
-    return or(not(premise), implication);
-  }
-
-
-
-  /**
-   * Creates a condition which evaluates to <code>true</code> if and
-   * only if a particular property has any values specified.
-   *
-   * @param propertyName
-   *          The property name.
-   * @return Returns a condition which evaluates to <code>true</code>
-   *         if and only if a particular property has any values
-   *         specified.
-   */
-  public static Condition isPresent(String propertyName) {
-    return new IsPresentCondition(propertyName);
-  }
-
-
-
-  /**
-   * Creates a condition which evaluates to <code>true</code> if the
-   * sub-condition is <code>false</code>, or <code>false</code>
-   * if the sub-condition is <code>true</code>.
-   *
-   * @param condition
-   *          The sub-condition which will be inverted.
-   * @return Returns a condition which evaluates to <code>true</code>
-   *         if the sub-condition is <code>false</code>, or
-   *         <code>false</code> if the sub-condition is
-   *         <code>true</code>.
-   */
-  public static Condition not(Condition condition) {
-    return new NOTCondition(condition);
-  }
-
-
-
-  /**
-   * Creates a condition which evaluates to <code>false</code> if
-   * and only if all of its sub-conditions are <code>false</code>.
-   *
-   * @param conditions
-   *          The sub-conditions which be combined using a logical OR.
-   * @return Returns a condition which evaluates to <code>false</code>
-   *         if and only if all of its sub-conditions are
-   *         <code>false</code>.
-   */
-  public static Condition or(Condition... conditions) {
-    return new ORCondition(conditions);
-  }
-
-
-
-  // Prevent instantiation.
-  private Conditions() {
-    // No implementation required.
-  }
+    // Prevent instantiation.
+    private Conditions() {
+        // No implementation required.
+    }
 
 }

--
Gitblit v1.10.0