From 12f788c17b8c281179f0819352f02b612b0219e2 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 02 Feb 2009 23:37:54 +0000
Subject: [PATCH] Fix issue 3734 - Make network group policies extensible.
---
opendj-sdk/opends/resource/admin/metaMO.xsl | 69 ++++++++++++++++++++++++++--------
1 files changed, 53 insertions(+), 16 deletions(-)
diff --git a/opendj-sdk/opends/resource/admin/metaMO.xsl b/opendj-sdk/opends/resource/admin/metaMO.xsl
index 469d41c..c6a57d6 100644
--- a/opendj-sdk/opends/resource/admin/metaMO.xsl
+++ b/opendj-sdk/opends/resource/admin/metaMO.xsl
@@ -22,7 +22,7 @@
! CDDL HEADER END
!
!
- ! Copyright 2007-2008 Sun Microsystems, Inc.
+ ! Copyright 2007-2009 Sun Microsystems, Inc.
! -->
<xsl:stylesheet version="1.0" xmlns:adm="http://www.opends.org/admin"
xmlns:admpp="http://www.opends.org/admin-preprocessor"
@@ -848,9 +848,12 @@
<xsl:when test="adm:one-to-zero-or-one">
<xsl:text>OptionalRelationDefinition<</xsl:text>
</xsl:when>
- <xsl:when test="adm:one-to-many">
+ <xsl:when test="string(adm:one-to-many/@unique) != 'true'">
<xsl:text>InstantiableRelationDefinition<</xsl:text>
</xsl:when>
+ <xsl:when test="string(adm:one-to-many/@unique) = 'true'">
+ <xsl:text>SetRelationDefinition<</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
<xsl:value-of
@@ -893,9 +896,12 @@
<xsl:when test="adm:one-to-zero-or-one">
<xsl:text>OptionalRelationDefinition</xsl:text>
</xsl:when>
- <xsl:when test="adm:one-to-many">
+ <xsl:when test="string(adm:one-to-many/@unique) != 'true'">
<xsl:text>InstantiableRelationDefinition</xsl:text>
</xsl:when>
+ <xsl:when test="string(adm:one-to-many/@unique) = 'true'">
+ <xsl:text>SetRelationDefinition</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
<xsl:value-of
@@ -918,6 +924,12 @@
<xsl:value-of
select="concat($java-managed-object-name, 'CfgDefn.getInstance());
')" />
<xsl:if test="adm:one-to-many/@naming-property">
+ <xsl:if test="string(adm:one-to-many/@unique) = 'true'">
+ <xsl:message terminate="yes">
+ <xsl:value-of
+ select="concat('Naming properties found in unique one-to-many relation "', @name, '".')" />
+ </xsl:message>
+ </xsl:if>
<xsl:variable name="java-property-name">
<xsl:call-template name="name-to-java">
<xsl:with-param name="value"
@@ -1111,9 +1123,12 @@
<xsl:when test="adm:one-to-zero-or-one">
<xsl:text>OptionalRelationDefinition<</xsl:text>
</xsl:when>
- <xsl:when test="adm:one-to-many">
+ <xsl:when test="string(adm:one-to-many/@unique) != 'true'">
<xsl:text>InstantiableRelationDefinition<</xsl:text>
</xsl:when>
+ <xsl:when test="string(adm:one-to-many/@unique) = 'true'">
+ <xsl:text>SetRelationDefinition<</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
<xsl:value-of
@@ -1259,14 +1274,29 @@
<xsl:text>
</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>
</xsl:text>
- <xsl:value-of
- select="concat(' /**
',
- ' * {@inheritDoc}
',
- ' */
',
- ' public <M extends ', $java-class-name, 'CfgClient> M create', $java-relation-name, '(
',
- ' ManagedObjectDefinition<M, ? extends ', $java-class-name,'Cfg> d, String name, Collection<DefaultBehaviorException> exceptions) throws IllegalManagedObjectNameException {
',
- ' return impl.createChild(INSTANCE.get', $java-relation-plural-name,'RelationDefinition(), d, name, exceptions).getConfiguration();
',
- ' }
')" />
+ <xsl:choose>
+ <xsl:when test="string(adm:one-to-many/@unique) != 'true'">
+ <xsl:value-of
+ select="concat(' /**
',
+ ' * {@inheritDoc}
',
+ ' */
',
+ ' public <M extends ', $java-class-name, 'CfgClient> M create', $java-relation-name, '(
',
+ ' ManagedObjectDefinition<M, ? extends ', $java-class-name,'Cfg> d, String name, Collection<DefaultBehaviorException> exceptions) throws IllegalManagedObjectNameException {
',
+ ' return impl.createChild(INSTANCE.get', $java-relation-plural-name,'RelationDefinition(), d, name, exceptions).getConfiguration();
',
+ ' }
')" />
+ </xsl:when>
+ <xsl:when test="string(adm:one-to-many/@unique) = 'true'">
+ <!-- Unique one-to-many children are named implicitly by their definition -->
+ <xsl:value-of
+ select="concat(' /**
',
+ ' * {@inheritDoc}
',
+ ' */
',
+ ' public <M extends ', $java-class-name, 'CfgClient> M create', $java-relation-name, '(
',
+ ' ManagedObjectDefinition<M, ? extends ', $java-class-name,'Cfg> d, Collection<DefaultBehaviorException> exceptions) {
',
+ ' return impl.createChild(INSTANCE.get', $java-relation-plural-name,'RelationDefinition(), d, exceptions).getConfiguration();
',
+ ' }
')" />
+ </xsl:when>
+ </xsl:choose>
<xsl:text>
</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>
</xsl:text>
@@ -1841,11 +1871,16 @@
<xsl:if test="$this-is-hidden or $this-is-advanced">
<import>org.opends.server.admin.ManagedObjectOption</import>
</xsl:if>
- <xsl:if test="$this-all-relations/adm:one-to-many">
+ <xsl:if test="$this-all-relations/adm:one-to-many[not(@unique = 'true')]">
<import>
org.opends.server.admin.InstantiableRelationDefinition
</import>
</xsl:if>
+ <xsl:if test="$this-all-relations/adm:one-to-many[@unique = 'true']">
+ <import>
+ org.opends.server.admin.SetRelationDefinition
+ </import>
+ </xsl:if>
<xsl:if test="$this-all-relations/adm:one-to-zero-or-one">
<import>
org.opends.server.admin.OptionalRelationDefinition
@@ -1912,9 +1947,11 @@
</xsl:if>
<xsl:if test="$this-all-relations/adm:one-to-many">
<import>java.util.Collection</import>
- <import>
- org.opends.server.admin.client.IllegalManagedObjectNameException
- </import>
+ <xsl:if test="$this-all-relations/adm:one-to-many[not(@unique = 'true')]">
+ <import>
+ org.opends.server.admin.client.IllegalManagedObjectNameException
+ </import>
+ </xsl:if>
<import>
org.opends.server.admin.DefaultBehaviorException
</import>
--
Gitblit v1.10.0