From 2a52b482ba335b393356c00fac36d9ae597c8441 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 20 Jul 2007 08:43:07 +0000
Subject: [PATCH] Fix issues 1966 and 1792.
---
opends/src/server/org/opends/server/admin/OptionalRelationDefinition.java | 77 ++++++++++++++++++++++++++++----------
1 files changed, 56 insertions(+), 21 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/OptionalRelationDefinition.java b/opends/src/server/org/opends/server/admin/OptionalRelationDefinition.java
index 7212e35..7a5a6c5 100644
--- a/opends/src/server/org/opends/server/admin/OptionalRelationDefinition.java
+++ b/opends/src/server/org/opends/server/admin/OptionalRelationDefinition.java
@@ -46,19 +46,64 @@
extends RelationDefinition<C, S> {
/**
- * Create a new optional managed object relation definition.
+ * An interface for incrementally constructing optional relation
+ * definitions.
*
- * @param pd
- * The parent managed object definition.
- * @param name
- * The name of the relation.
- * @param cd
- * The child managed object definition.
+ * @param <C>
+ * The type of client managed object configuration that
+ * this relation definition refers to.
+ * @param <S>
+ * The type of server managed object configuration that
+ * this relation definition refers to.
*/
- public OptionalRelationDefinition(
- AbstractManagedObjectDefinition<?, ?> pd, String name,
- AbstractManagedObjectDefinition<C, S> cd) {
- super(pd, name, cd);
+ public static class Builder
+ <C extends ConfigurationClient, S extends Configuration>
+ extends AbstractBuilder<C, S, OptionalRelationDefinition<C, S>> {
+
+ /**
+ * Creates a new builder which can be used to incrementally build
+ * an optional relation definition.
+ *
+ * @param pd
+ * The parent managed object definition.
+ * @param name
+ * The name of the relation.
+ * @param cd
+ * The child managed object definition.
+ */
+ public Builder(AbstractManagedObjectDefinition<?, ?> pd, String name,
+ AbstractManagedObjectDefinition<C, S> cd) {
+ super(pd, name, cd);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected OptionalRelationDefinition<C, S> buildInstance(
+ Common<C, S> common) {
+ return new OptionalRelationDefinition<C, S>(common);
+ }
+
+ }
+
+
+
+ // Private constructor.
+ private OptionalRelationDefinition(Common<C, S> common) {
+ super(common);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public <R, P> R accept(RelationDefinitionVisitor<R, P> v, P p) {
+ return v.visitOptional(this, p);
}
@@ -77,14 +122,4 @@
builder.append(" minOccurs=0 maxOccurs=1");
}
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public <R, P> R accept(RelationDefinitionVisitor<R, P> v, P p) {
- return v.visitOptional(this, p);
- }
-
}
--
Gitblit v1.10.0