Sorted the problem of generating null tests for non-nullable characters in C# entities;
Removed square brackets from SQL keywords in generated SQL (relying on quotes instead).
This commit is contained in:
parent
2c0d8ae5ca
commit
ac72992239
|
@ -8,8 +8,8 @@
|
||||||
Transform ADL into entity classes
|
Transform ADL into entity classes
|
||||||
|
|
||||||
$Author: sb $
|
$Author: sb $
|
||||||
$Revision: 1.9 $
|
$Revision: 1.10 $
|
||||||
$Date: 2008-07-15 16:41:31 $
|
$Date: 2008-07-21 10:00:48 $
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
// (c)2007 Cygnet Solutions Ltd
|
// (c)2007 Cygnet Solutions Ltd
|
||||||
//
|
//
|
||||||
// Automatically generated from application description using
|
// Automatically generated from application description using
|
||||||
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.9 $', 10)"/>
|
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.10 $', 10)"/>
|
||||||
//
|
//
|
||||||
// <xsl:value-of select="/adl:application/@revision"/>
|
// <xsl:value-of select="/adl:application/@revision"/>
|
||||||
//
|
//
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Automatically generated from description of entity <xsl:value-of select="@name"/>
|
/// Automatically generated from description of entity <xsl:value-of select="@name"/>
|
||||||
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.9 $', 10)"/>.
|
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.10 $', 10)"/>.
|
||||||
/// Note that manually maintained parts of this class may be defined in
|
/// Note that manually maintained parts of this class may be defined in
|
||||||
/// a separate file called <xsl:value-of select="@name"/>.manual.cs, q.v.
|
/// a separate file called <xsl:value-of select="@name"/>.manual.cs, q.v.
|
||||||
///
|
///
|
||||||
|
@ -164,26 +164,39 @@
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="descendant::adl:property[@distinct='user' or @distinct='all']">
|
<xsl:when test="descendant::adl:property[@distinct='user' or @distinct='all']">
|
||||||
<xsl:for-each select="descendant::adl:property[@distinct='user' or @distinct='all']">
|
<xsl:for-each select="descendant::adl:property[@distinct='user' or @distinct='all']">
|
||||||
if ( <xsl:value-of select="@name"/> != null){
|
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@type='message'">
|
<xsl:when test="@type='message'">
|
||||||
|
if ( <xsl:value-of select="@name"/> != null){
|
||||||
result.Append( <xsl:value-of select="concat( @name, '.LocalText')"/>);
|
result.Append( <xsl:value-of select="concat( @name, '.LocalText')"/>);
|
||||||
|
}
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@type='entity'">
|
<xsl:when test="@type='entity'">
|
||||||
<!-- TODO: this is dangerous and could potentially give rise to
|
<!-- TODO: this is dangerous and could potentially give rise to
|
||||||
infinite loops; find a way of stopping it running away! -->
|
infinite loops; find a way of stopping it running away! -->
|
||||||
|
if ( <xsl:value-of select="@name"/> != null){
|
||||||
result.Append( <xsl:value-of select="concat( @name, '.UserIdentifier')"/>);
|
result.Append( <xsl:value-of select="concat( @name, '.UserIdentifier')"/>);
|
||||||
|
}
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@type='date'">
|
<xsl:when test="@type='date'">
|
||||||
<!-- if what we've got is just a date, we only want to see the date part of it -->
|
<!-- if what we've got is just a date, we only want to see the date part of it -->
|
||||||
|
if ( <xsl:value-of select="@name"/> != null){
|
||||||
result.Append(<xsl:value-of select="@name"/>.ToString( "d"));
|
result.Append(<xsl:value-of select="@name"/>.ToString( "d"));
|
||||||
|
}
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@type='time'">
|
<xsl:when test="@type='time'">
|
||||||
<!-- if what we've got is just a time, we only want to see the time part of it -->
|
<!-- if what we've got is just a time, we only want to see the time part of it -->
|
||||||
|
if ( <xsl:value-of select="@name"/> != null){
|
||||||
result.Append(<xsl:value-of select="@name"/>.ToString( "t"));
|
result.Append(<xsl:value-of select="@name"/>.ToString( "t"));
|
||||||
|
}
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@required = 'true' and (@type = 'integer' or @type = 'real' or @type = 'boolean' or @type = 'money')">
|
||||||
|
<!-- can't be null because we will have generated a non-nullable type -->
|
||||||
|
result.Append(<xsl:value-of select="@name"/>.ToString();
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
|
if ( <xsl:value-of select="@name"/> != null){
|
||||||
result.Append(<xsl:value-of select="@name"/>);
|
result.Append(<xsl:value-of select="@name"/>);
|
||||||
|
}
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
|
@ -192,7 +205,6 @@
|
||||||
result.Append( ",");
|
result.Append( ",");
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
}
|
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
|
@ -344,18 +356,30 @@
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
<xsl:if test="@required='true'">
|
<xsl:if test="@required='true'">
|
||||||
if ( value == null)
|
<!-- If we could generate a non-nullable type we have done so; otherwise,
|
||||||
{
|
must catch null -->
|
||||||
throw new DataRequiredException( <xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="ifmissing[@locale=$locale]">
|
<xsl:when test="@type='integer'"/>
|
||||||
<xsl:apply-templates select="ifmissing"/>
|
<xsl:when test="@type='real'"/>
|
||||||
|
<xsl:when test="@type='money'">
|
||||||
|
<!-- not quite certain of that - check! -->
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
|
<xsl:when test="@type='boolean'"/>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
"The value for <xsl:value-of select="@name"/> may not be set to null"
|
if ( value == null)
|
||||||
|
{
|
||||||
|
throw new DataRequiredException( <xsl:choose>
|
||||||
|
<xsl:when test="ifmissing[@locale=$locale]">
|
||||||
|
<xsl:apply-templates select="ifmissing"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
"The value for <xsl:value-of select="@name"/> may not be set to null"
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
);
|
||||||
|
}
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
);
|
|
||||||
}
|
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="@type='defined'">
|
<xsl:if test="@type='defined'">
|
||||||
<xsl:variable name="definition">
|
<xsl:variable name="definition">
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
Convert ADL to MS-SQL
|
Convert ADL to MS-SQL
|
||||||
|
|
||||||
$Author: sb $
|
$Author: sb $
|
||||||
$Revision: 1.8 $
|
$Revision: 1.9 $
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsl:output indent="no" encoding="UTF-8" method="text"/>
|
<xsl:output indent="no" encoding="UTF-8" method="text"/>
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
-- <xsl:value-of select="$product-version"/>
|
-- <xsl:value-of select="$product-version"/>
|
||||||
--
|
--
|
||||||
-- Database for application <xsl:value-of select="@name"/> version <xsl:value-of select="@version"/>
|
-- Database for application <xsl:value-of select="@name"/> version <xsl:value-of select="@version"/>
|
||||||
-- Generated for MS-SQL 2000+ using adl2mssql.xslt <xsl:value-of select="substring('$Revision: 1.8 $', 12)"/>
|
-- Generated for MS-SQL 2000+ using adl2mssql.xslt <xsl:value-of select="substring('$Revision: 1.9 $', 12)"/>
|
||||||
-- THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT IT.
|
-- THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT IT.
|
||||||
--
|
--
|
||||||
-- <xsl:value-of select="@revision"/>
|
-- <xsl:value-of select="@revision"/>
|
||||||
|
@ -636,7 +636,12 @@
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="contains( $sqlkeywords, concat(' ', translate( $unescaped, $lcase, $ucase),' '))">
|
<xsl:when test="contains( $sqlkeywords, concat(' ', translate( $unescaped, $lcase, $ucase),' '))">
|
||||||
<xsl:value-of select="concat( '[', $unescaped, ']')"/>
|
<!--
|
||||||
|
names which are keywords need to be escaped /either/ with square
|
||||||
|
brackets /or/ with quotes, but currently we're using quotes for all names
|
||||||
|
so don't need square brackets.
|
||||||
|
xsl:value-of select="concat( '[', $unescaped, ']')"/ -->
|
||||||
|
<xsl:value-of select="$unescaped"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="$unescaped"/>
|
<xsl:value-of select="$unescaped"/>
|
||||||
|
|
Loading…
Reference in a new issue