From 9ba239d1a7f3caf0be1a02f01b00762ec3f01397 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Tue, 29 May 2007 11:59:21 +0000
Subject: [PATCH] Fix issue 1580: support overriding of property default values.
---
opends/resource/admin/metaMO.xsl | 144 +++++++++++++++++++++++------------------------
1 files changed, 70 insertions(+), 74 deletions(-)
diff --git a/opends/resource/admin/metaMO.xsl b/opends/resource/admin/metaMO.xsl
index 9ba6a10..904b0b9 100644
--- a/opends/resource/admin/metaMO.xsl
+++ b/opends/resource/admin/metaMO.xsl
@@ -594,86 +594,79 @@
<xsl:value-of
select="' builder.setOption(PropertyOption.HIDDEN);
'" />
</xsl:if>
+ <xsl:if
+ test="not(@mandatory='true') and not(adm:default-behavior)">
+ <xsl:message terminate="yes">
+ <xsl:value-of
+ select="concat('No default behavior defined for non-mandatory property "', @name,
+ '".')" />
+ </xsl:message>
+ </xsl:if>
<xsl:choose>
- <xsl:when test="@mandatory='true'">
+ <xsl:when test="not(adm:default-behavior) or adm:default-behavior/adm:undefined">
<xsl:value-of
select="concat(' builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<', $value-type,'>());
')" />
</xsl:when>
- <xsl:otherwise>
- <xsl:if test="not(adm:default-behavior)">
- <xsl:message terminate="yes">
- <xsl:value-of
- select="concat('No default behavior defined for non-mandatory property "', @name,
- '".')" />
- </xsl:message>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="adm:default-behavior/adm:undefined">
- <xsl:value-of
- select="concat(' builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<', $value-type,'>());
')" />
- </xsl:when>
- <xsl:when test="adm:default-behavior/adm:alias">
- <xsl:value-of
- select="concat(' builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<', $value-type,'>(INSTANCE, "', @name, '"));
')" />
- </xsl:when>
- <xsl:when test="adm:default-behavior/adm:defined">
- <xsl:value-of
- select="concat(' DefaultBehaviorProvider<', $value-type,'> provider = ',
+ <xsl:when test="adm:default-behavior/adm:alias">
+ <xsl:value-of
+ select="concat(' builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<', $value-type,'>(INSTANCE, "', @name, '"));
')" />
+ </xsl:when>
+ <xsl:when test="adm:default-behavior/adm:defined">
+ <xsl:value-of
+ select="concat(' DefaultBehaviorProvider<', $value-type,'> provider = ',
'new DefinedDefaultBehaviorProvider<', $value-type,'>(')" />
- <xsl:for-each
- select="adm:default-behavior/adm:defined/adm:value">
- <xsl:value-of
- select="concat('"', normalize-space(), '"')" />
- <xsl:if test="position() != last()">
- <xsl:value-of select="', '" />
- </xsl:if>
- </xsl:for-each>
- <xsl:value-of select="');
'" />
- <xsl:value-of
- select="' builder.setDefaultBehaviorProvider(provider);
'" />
- </xsl:when>
- <xsl:when
- test="adm:default-behavior/adm:inherited/adm:relative">
- <xsl:value-of
- select="concat(' DefaultBehaviorProvider<', $value-type,'> provider = ',
+ <xsl:for-each
+ select="adm:default-behavior/adm:defined/adm:value">
+ <xsl:value-of
+ select="concat('"', normalize-space(), '"')" />
+ <xsl:if test="position() != last()">
+ <xsl:value-of select="', '" />
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:value-of select="');
'" />
+ <xsl:value-of
+ select="' builder.setDefaultBehaviorProvider(provider);
'" />
+ </xsl:when>
+ <xsl:when
+ test="adm:default-behavior/adm:inherited/adm:relative">
+ <xsl:value-of
+ select="concat(' DefaultBehaviorProvider<', $value-type,'> provider = ',
'new RelativeInheritedDefaultBehaviorProvider<', $value-type,'>(')" />
- <xsl:variable name="managed-object-name">
- <xsl:call-template name="name-to-java">
- <xsl:with-param name="value"
- select="adm:default-behavior/adm:inherited/adm:relative/@managed-object-name" />
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="property-name"
- select="adm:default-behavior/adm:inherited/adm:relative/@property-name" />
- <xsl:variable name="offset"
- select="adm:default-behavior/adm:inherited/adm:relative/@offset" />
- <xsl:value-of
- select="concat($managed-object-name, 'CfgDefn.getInstance(), "', $property-name, '", ', $offset, ');
')" />
- <xsl:value-of
- select="' builder.setDefaultBehaviorProvider(provider);
'" />
- </xsl:when>
- <xsl:when
- test="adm:default-behavior/adm:inherited/adm:absolute">
- <xsl:value-of
- select="concat(' DefaultBehaviorProvider<', $value-type,'> provider = ',
+ <xsl:variable name="managed-object-name">
+ <xsl:call-template name="name-to-java">
+ <xsl:with-param name="value"
+ select="adm:default-behavior/adm:inherited/adm:relative/@managed-object-name" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="property-name"
+ select="adm:default-behavior/adm:inherited/adm:relative/@property-name" />
+ <xsl:variable name="offset"
+ select="adm:default-behavior/adm:inherited/adm:relative/@offset" />
+ <xsl:value-of
+ select="concat($managed-object-name, 'CfgDefn.getInstance(), "', $property-name, '", ', $offset, ');
')" />
+ <xsl:value-of
+ select="' builder.setDefaultBehaviorProvider(provider);
'" />
+ </xsl:when>
+ <xsl:when
+ test="adm:default-behavior/adm:inherited/adm:absolute">
+ <xsl:value-of
+ select="concat(' DefaultBehaviorProvider<', $value-type,'> provider = ',
'new AbsoluteInheritedDefaultBehaviorProvider<', $value-type,'>(')" />
- <xsl:variable name="property-name"
- select="adm:default-behavior/adm:inherited/adm:absolute/@property-name" />
- <xsl:variable name="path"
- select="adm:default-behavior/adm:inherited/adm:absolute/@path" />
- <xsl:value-of
- select="concat('ManagedObjectPath.valueOf("', $path, '"), "', $property-name, '");
')" />
- <xsl:value-of
- select="' builder.setDefaultBehaviorProvider(provider);
'" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:message terminate="yes">
- <xsl:value-of
- select="concat('Unrecognized default behavior type for property "', @name,
+ <xsl:variable name="property-name"
+ select="adm:default-behavior/adm:inherited/adm:absolute/@property-name" />
+ <xsl:variable name="path"
+ select="adm:default-behavior/adm:inherited/adm:absolute/@path" />
+ <xsl:value-of
+ select="concat('ManagedObjectPath.valueOf("', $path, '"), "', $property-name, '");
')" />
+ <xsl:value-of
+ select="' builder.setDefaultBehaviorProvider(provider);
'" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:value-of
+ select="concat('Unrecognized default behavior type for property "', @name,
'".')" />
- </xsl:message>
- </xsl:otherwise>
- </xsl:choose>
+ </xsl:message>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="get-property-definition-ctor" />
@@ -1066,7 +1059,8 @@
</xsl:choose>
<xsl:value-of select="' value)'" />
<xsl:if test="@read-only='true'">
- <xsl:value-of select="' throws PropertyIsReadOnlyException'" />
+ <xsl:value-of
+ select="' throws PropertyIsReadOnlyException'" />
</xsl:if>
<xsl:value-of
select="concat(' {
' ,
@@ -1781,7 +1775,9 @@
<import>java.util.Collection</import>
</xsl:if>
<xsl:if test="$this-all-properties[@read-only='true']">
- <import>org.opends.server.admin.PropertyIsReadOnlyException</import>
+ <import>
+ org.opends.server.admin.PropertyIsReadOnlyException
+ </import>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
--
Gitblit v1.10.0