From 826e7e5d70450bd954d561024a497b4887dedfcf Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 19 Apr 2007 09:48:46 +0000
Subject: [PATCH] Fix for issue 1442.
---
opends/src/server/org/opends/server/admin/AbstractPropertyDefinition.java | 100 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 94 insertions(+), 6 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/AbstractPropertyDefinition.java b/opends/src/server/org/opends/server/admin/AbstractPropertyDefinition.java
index 87ff5a0..d568425 100644
--- a/opends/src/server/org/opends/server/admin/AbstractPropertyDefinition.java
+++ b/opends/src/server/org/opends/server/admin/AbstractPropertyDefinition.java
@@ -32,6 +32,8 @@
import static org.opends.server.util.Validator.ensureNotNull;
import java.util.EnumSet;
+import java.util.Locale;
+import java.util.MissingResourceException;
import java.util.Set;
@@ -56,6 +58,9 @@
protected abstract static class AbstractBuilder<T,
D extends PropertyDefinition<T>> {
+ // The abstract managed object
+ private final AbstractManagedObjectDefinition<?, ?> definition;
+
// The name of this property definition.
private final String propertyName;
@@ -70,10 +75,15 @@
/**
* Create a property definition builder.
*
+ * @param d
+ * The managed object definition associated with this
+ * property definition.
* @param propertyName
* The property name.
*/
- protected AbstractBuilder(String propertyName) {
+ protected AbstractBuilder(
+ AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
+ this.definition = d;
this.propertyName = propertyName;
this.options = EnumSet.noneOf(PropertyOption.class);
this.defaultBehavior = new UndefinedDefaultBehaviorProvider<T>();
@@ -87,7 +97,7 @@
* @return The new property definition.
*/
public final D getInstance() {
- return buildInstance(propertyName, options, defaultBehavior);
+ return buildInstance(definition, propertyName, options, defaultBehavior);
}
@@ -120,8 +130,12 @@
/**
- * Build a property definition based on the properties of this builder.
+ * Build a property definition based on the properties of this
+ * builder.
*
+ * @param d
+ * The managed object definition associated with this
+ * property definition.
* @param propertyName
* The property name.
* @param options
@@ -130,7 +144,8 @@
* The default behavior provider.
* @return The new property definition.
*/
- protected abstract D buildInstance(String propertyName,
+ protected abstract D buildInstance(
+ AbstractManagedObjectDefinition<?, ?> d, String propertyName,
EnumSet<PropertyOption> options,
DefaultBehaviorProvider<T> defaultBehavior);
}
@@ -147,11 +162,17 @@
// The default behavior provider.
private final DefaultBehaviorProvider<T> defaultBehavior;
+ // The abstract managed object
+ private final AbstractManagedObjectDefinition<?, ?> definition;
+
/**
* Create a property definition.
*
+ * @param d
+ * The managed object definition associated with this
+ * property definition.
* @param theClass
* The property value class.
* @param propertyName
@@ -161,11 +182,14 @@
* @param defaultBehavior
* The default behavior provider.
*/
- protected AbstractPropertyDefinition(Class<T> theClass, String propertyName,
+ protected AbstractPropertyDefinition(AbstractManagedObjectDefinition<?,?> d,
+ Class<T> theClass, String propertyName,
EnumSet<PropertyOption> options,
DefaultBehaviorProvider<T> defaultBehavior) {
- ensureNotNull(theClass, propertyName, options, defaultBehavior);
+ ensureNotNull(d, theClass, propertyName);
+ ensureNotNull(options, defaultBehavior);
+ this.definition = d;
this.theClass = theClass;
this.propertyName = propertyName;
this.options = EnumSet.copyOf(options);
@@ -280,6 +304,45 @@
/**
* {@inheritDoc}
*/
+ public final String getDescription() {
+ return getDescription(Locale.getDefault());
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public final String getDescription(Locale locale) {
+ ManagedObjectDefinitionI18NResource resource =
+ ManagedObjectDefinitionI18NResource.getInstance();
+ String property = "property." + propertyName + ".description";
+ try {
+ return resource.getMessage(definition, property, locale);
+ } catch (MissingResourceException e) {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Gets the managed object definition associated with this property
+ * definition.
+ *
+ * @return Returns the managed object definition associated with
+ * this property definition.
+ */
+ public final AbstractManagedObjectDefinition<?, ?>
+ getManagedObjectDefinition() {
+ return definition;
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
public final String getName() {
return propertyName;
}
@@ -289,6 +352,31 @@
/**
* {@inheritDoc}
*/
+ public final String getSynopsis() {
+ return getSynopsis(Locale.getDefault());
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public final String getSynopsis(Locale locale) {
+ ManagedObjectDefinitionI18NResource resource =
+ ManagedObjectDefinitionI18NResource.getInstance();
+ String property = "property." + propertyName + ".synopsis";
+ try {
+ return resource.getMessage(definition, property, locale);
+ } catch (MissingResourceException e) {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public int hashCode() {
// TODO: see comment in equals().
--
Gitblit v1.10.0