From e3acbc5e70b15dc5ca1134cd0ae4501b424d160f Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 15 Jun 2007 08:18:40 +0000
Subject: [PATCH] Partial fix for issue 1426: improve support for required admin actions.
---
opends/src/server/org/opends/server/admin/PropertyDefinition.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/PropertyDefinition.java b/opends/src/server/org/opends/server/admin/PropertyDefinition.java
index 5f388e4..ad8ba9c 100644
--- a/opends/src/server/org/opends/server/admin/PropertyDefinition.java
+++ b/opends/src/server/org/opends/server/admin/PropertyDefinition.java
@@ -67,6 +67,9 @@
protected abstract static class AbstractBuilder
<T, D extends PropertyDefinition<T>> {
+ // The administrator action.
+ private AdministratorAction adminAction;
+
// The default behavior provider.
private DefaultBehaviorProvider<T> defaultBehavior;
@@ -95,6 +98,8 @@
this.definition = d;
this.propertyName = propertyName;
this.options = EnumSet.noneOf(PropertyOption.class);
+ this.adminAction = new AdministratorAction(AdministratorAction.Type.NONE,
+ d, propertyName);
this.defaultBehavior = new UndefinedDefaultBehaviorProvider<T>();
}
@@ -107,7 +112,21 @@
* @return The new property definition.
*/
public final D getInstance() {
- return buildInstance(definition, propertyName, options, defaultBehavior);
+ return buildInstance(definition, propertyName, options, adminAction,
+ defaultBehavior);
+ }
+
+
+
+ /**
+ * Set the administrator action.
+ *
+ * @param adminAction
+ * The administrator action.
+ */
+ public final void setAdministratorAction(AdministratorAction adminAction) {
+ ensureNotNull(adminAction);
+ this.adminAction = adminAction;
}
@@ -150,15 +169,21 @@
* The property name.
* @param options
* Options applicable to this definition.
+ * @param adminAction
+ * The administrator action.
* @param defaultBehavior
* The default behavior provider.
* @return The new property definition.
*/
protected abstract D buildInstance(AbstractManagedObjectDefinition<?, ?> d,
String propertyName, EnumSet<PropertyOption> options,
+ AdministratorAction adminAction,
DefaultBehaviorProvider<T> defaultBehavior);
}
+ // The administrator action.
+ private final AdministratorAction adminAction;
+
// The default behavior provider.
private final DefaultBehaviorProvider<T> defaultBehavior;
@@ -188,19 +213,23 @@
* The property name.
* @param options
* Options applicable to this definition.
+ * @param adminAction
+ * The administrator action.
* @param defaultBehavior
* The default behavior provider.
*/
protected PropertyDefinition(AbstractManagedObjectDefinition<?, ?> d,
Class<T> theClass, String propertyName, EnumSet<PropertyOption> options,
+ AdministratorAction adminAction,
DefaultBehaviorProvider<T> defaultBehavior) {
ensureNotNull(d, theClass, propertyName);
- ensureNotNull(options, defaultBehavior);
+ ensureNotNull(options, adminAction, defaultBehavior);
this.definition = d;
this.theClass = theClass;
this.propertyName = propertyName;
this.options = EnumSet.copyOf(options);
+ this.adminAction = adminAction;
this.defaultBehavior = defaultBehavior;
}
@@ -403,6 +432,21 @@
/**
+ * Get the administrator action associated with this property
+ * definition. The administrator action describes any action which
+ * the administrator must perform in order for changes to this
+ * property to take effect.
+ *
+ * @return Returns the administrator action associated with this
+ * property definition.
+ */
+ public final AdministratorAction getAdministratorAction() {
+ return adminAction;
+ }
+
+
+
+ /**
* Get the default behavior provider associated with this property
* definition.
*
--
Gitblit v1.10.0