From b97785a371b09a674dbef8029a99a730ee928e8d Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 19 Dec 2007 09:55:26 +0000
Subject: [PATCH] Fix for issue 2446 part #1.
---
opends/src/server/org/opends/server/admin/SingletonRelationDefinition.java | 68 ++++++++++++++++++++++++++++++++--
1 files changed, 64 insertions(+), 4 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/SingletonRelationDefinition.java b/opends/src/server/org/opends/server/admin/SingletonRelationDefinition.java
index a2eccaa..27a3b78 100644
--- a/opends/src/server/org/opends/server/admin/SingletonRelationDefinition.java
+++ b/opends/src/server/org/opends/server/admin/SingletonRelationDefinition.java
@@ -56,10 +56,17 @@
* The type of server managed object configuration that
* this relation definition refers to.
*/
- public static class Builder
+ public static final class Builder
<C extends ConfigurationClient, S extends Configuration>
extends AbstractBuilder<C, S, SingletonRelationDefinition<C, S>> {
+ // The optional default managed object associated with this
+ // singleton relation.
+ private DefaultManagedObject<? extends C, ? extends S>
+ defaultManagedObject = null;
+
+
+
/**
* Creates a new builder which can be used to incrementally build
* an singleton relation definition.
@@ -79,21 +86,47 @@
/**
+ * Sets the optional default managed object associated with this
+ * singleton relation definition.
+ *
+ * @param defaultManagedObject
+ * The default managed object or <code>null</code> if
+ * there is no default managed object defined for this
+ * relation definition.
+ */
+ public void setDefaultManagedObject(
+ DefaultManagedObject<? extends C, ? extends S> defaultManagedObject) {
+ this.defaultManagedObject = defaultManagedObject;
+ }
+
+
+
+ /**
* {@inheritDoc}
*/
@Override
protected SingletonRelationDefinition<C, S> buildInstance(
Common<C, S> common) {
- return new SingletonRelationDefinition<C, S>(common);
+ return new SingletonRelationDefinition<C, S>(common,
+ defaultManagedObject);
}
}
+ // The optional default managed object associated with this
+ // singleton relation.
+ private final DefaultManagedObject<? extends C, ? extends S>
+ defaultManagedObject;
+
+
+
// Private constructor.
- private SingletonRelationDefinition(Common<C, S> common) {
+ private SingletonRelationDefinition(Common<C, S> common,
+ DefaultManagedObject<? extends C, ? extends S> defaultManagedObject) {
super(common);
+ this.defaultManagedObject = defaultManagedObject;
}
@@ -109,10 +142,25 @@
/**
+ * Gets the optional default managed object associated with this
+ * singleton relation definition.
+ *
+ * @return Returns the default managed object or <code>null</code>
+ * if there is no default managed object defined for this
+ * relation definition.
+ */
+ public DefaultManagedObject<? extends C, ? extends S>
+ getDefaultManagedObject() {
+ return defaultManagedObject;
+ }
+
+
+
+ /**
* {@inheritDoc}
*/
@Override
- public final void toString(StringBuilder builder) {
+ public void toString(StringBuilder builder) {
builder.append("name=");
builder.append(getName());
builder.append(" type=composition parent=");
@@ -122,4 +170,16 @@
builder.append(" minOccurs=1 maxOccurs=1");
}
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void initialize() throws Exception {
+ if (defaultManagedObject != null) {
+ defaultManagedObject.initialize();
+ }
+ }
+
}
--
Gitblit v1.10.0