Work on improving the NHibernate performance (not good enough yet).
This commit is contained in:
parent
9a6b02cd6b
commit
aec6114d9f
|
@ -9,8 +9,8 @@
|
||||||
Transform ADL into (partial) controller classes
|
Transform ADL into (partial) controller classes
|
||||||
|
|
||||||
$Author: sb $
|
$Author: sb $
|
||||||
$Revision: 1.15 $
|
$Revision: 1.16 $
|
||||||
$Date: 2008-03-12 13:46:10 $
|
$Date: 2008-03-12 17:40:02 $
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
||||||
|
@ -49,38 +49,66 @@
|
||||||
<xsl:param name="abstract-key-name-convention" select="Id"/>
|
<xsl:param name="abstract-key-name-convention" select="Id"/>
|
||||||
|
|
||||||
<xsl:template match="adl:application">
|
<xsl:template match="adl:application">
|
||||||
|
<xsl:call-template name="collection-factory"/>
|
||||||
<xsl:apply-templates select="adl:entity"/>
|
<xsl:apply-templates select="adl:entity"/>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="collection-factory">
|
||||||
|
/* ---- [ cut here: next file '<xsl:value-of select="concat( 'Abstract', /adl:application/@name, 'Controller')"/>.auto.cs'] ---------------- */
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Application Description Language framework
|
||||||
|
// <xsl:value-of select="concat( 'Abstract', /adl:application/@name, 'Controller')"/>.auto.cs
|
||||||
|
//
|
||||||
|
// (c) 2007 Cygnet Solutions Ltd
|
||||||
|
//
|
||||||
|
// Controller for auto-generated forms for editing <xsl:value-of select="@name"/>s
|
||||||
|
// Automatically generated from application description using
|
||||||
|
// adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.16 $', 10)"/>
|
||||||
|
//
|
||||||
|
// This file is automatically generated; DO NOT EDIT IT.
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using NHibernate;
|
||||||
|
using NHibernate.Expression;
|
||||||
|
using <xsl:value-of select="$entityns"/>;
|
||||||
|
|
||||||
|
namespace <xsl:value-of select="$controllerns"/> {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Automatically generated abstract super class for controllers for the
|
||||||
|
/// <xsl:value-of select="/adl:application/@name"/> application
|
||||||
|
///
|
||||||
|
/// DO NOT EDIT THIS FILE!
|
||||||
|
/// </summary>
|
||||||
|
public abstract class <xsl:value-of select="concat( 'Abstract', /adl:application/@name, 'Controller')"/> : BaseController {
|
||||||
|
<xsl:for-each select="//adl:entity">
|
||||||
|
/// <summary>
|
||||||
|
/// Return a list of all instances of <xsl:value-of select="@name"/> for use in menus, etc;
|
||||||
|
/// </summary>
|
||||||
|
protected IList<<xsl:value-of select="concat( $entityns, '.', @name)"/>> <xsl:value-of select="concat( 'FetchAll', @name)"/>( ISession hibernator) {
|
||||||
|
return hibernator.CreateCriteria(typeof(<xsl:value-of select="concat( $entityns, '.', @name)"/>))
|
||||||
|
<xsl:for-each select="descendant::adl:property[@distinct='user']">
|
||||||
|
.AddOrder( <xsl:value-of select="concat('new Order( "', @name, '", true)')"/>)
|
||||||
|
</xsl:for-each>
|
||||||
|
.SetCacheable( true)
|
||||||
|
.SetCacheRegion( "<xsl:value-of select="/adl:application/@name"/>")
|
||||||
|
.List<<xsl:value-of select="concat( $entityns, '.', @name)"/>>();
|
||||||
|
}
|
||||||
|
|
||||||
|
</xsl:for-each>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
<!-- Don't bother generating anything for foreign entities -->
|
<!-- Don't bother generating anything for foreign entities -->
|
||||||
<xsl:template match="adl:entity[@foreign='true']"/>
|
<xsl:template match="adl:entity[@foreign='true']"/>
|
||||||
|
|
||||||
<xsl:template match="adl:entity[adl:form|adl:page|adl:list]">
|
<xsl:template match="adl:entity[adl:form|adl:page|adl:list]">
|
||||||
<!-- what's all this about? the objective is to get the revision number of the
|
|
||||||
transform into the output, /without/ getting that revision number overwritten
|
|
||||||
with the revision number of the generated file if the generated file is
|
|
||||||
stored to CVS -->
|
|
||||||
<xsl:variable name="transform-rev1"
|
|
||||||
select="substring( '$Revision: 1.15 $', 11)"/>
|
|
||||||
<xsl:variable name="transform-revision"
|
|
||||||
select="substring( $transform-rev1, 0, string-length( $transform-rev1) - 1)"/>
|
|
||||||
|
|
||||||
<!-- xsl:variable name="key">
|
|
||||||
<xsl:call-template name="primary-key-name">
|
|
||||||
<xsl:with-param name="entity" select="."/>
|
|
||||||
</xsl:call-template>
|
|
||||||
</xsl:variable>
|
|
||||||
<xsl:variable name="keytype">
|
|
||||||
<xsl:choose>
|
|
||||||
<xsl:when test="adl:key/adl:property">
|
|
||||||
<xsl:call-template name="primary-key-csharp-type">
|
|
||||||
<xsl:with-param name="entity" select="."/>
|
|
||||||
</xsl:call-template>
|
|
||||||
</xsl:when>
|
|
||||||
<xsl:otherwise>[no primary key]</xsl:otherwise>
|
|
||||||
</xsl:choose>
|
|
||||||
</xsl:variable -->
|
|
||||||
|
|
||||||
|
|
||||||
/* ---- [ cut here: next file '<xsl:value-of select="@name"/>Controller.auto.cs'] ---------------- */
|
/* ---- [ cut here: next file '<xsl:value-of select="@name"/>Controller.auto.cs'] ---------------- */
|
||||||
|
|
||||||
|
@ -93,7 +121,7 @@
|
||||||
//
|
//
|
||||||
// Controller for auto-generated forms for editing <xsl:value-of select="@name"/>s
|
// Controller for auto-generated forms for editing <xsl:value-of select="@name"/>s
|
||||||
// Automatically generated from application description using
|
// Automatically generated from application description using
|
||||||
// adl2controllerclasses.xslt version <xsl:value-of select="$transform-revision"/>
|
// adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.16 $', 10)"/>
|
||||||
//
|
//
|
||||||
// This file is automatically generated; DO NOT EDIT IT.
|
// This file is automatically generated; DO NOT EDIT IT.
|
||||||
//
|
//
|
||||||
|
@ -131,7 +159,7 @@ namespace <xsl:value-of select="$controllerns"/> {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ Layout("empty"), Rescue("generalerror"),
|
[ Layout("empty"), Rescue("generalerror"),
|
||||||
ControllerDetails("<xsl:value-of select="@name"/>", Area = "auto")]
|
ControllerDetails("<xsl:value-of select="@name"/>", Area = "auto")]
|
||||||
public partial class <xsl:value-of select="@name"/>Controller : BaseController {
|
public partial class <xsl:value-of select="@name"/>Controller : <xsl:value-of select="concat( 'Abstract', /adl:application/@name, 'Controller')"/> {
|
||||||
|
|
||||||
<xsl:if test="adl:form">
|
<xsl:if test="adl:form">
|
||||||
<!-- unless there's at least one form, we won't generate a 'store' method -->
|
<!-- unless there's at least one form, we won't generate a 'store' method -->
|
||||||
|
@ -367,7 +395,7 @@ namespace <xsl:value-of select="$controllerns"/> {
|
||||||
</xsl:if>);
|
</xsl:if>);
|
||||||
}
|
}
|
||||||
|
|
||||||
<xsl:call-template name="menus">
|
<xsl:call-template name="menus">
|
||||||
<xsl:with-param name="entity" select="."/>
|
<xsl:with-param name="entity" select="."/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
RenderViewWithFailover("<xsl:value-of select="concat( adl:form[position()=1]/@name, '.vm')"/>",
|
RenderViewWithFailover("<xsl:value-of select="concat( adl:form[position()=1]/@name, '.vm')"/>",
|
||||||
|
@ -678,13 +706,17 @@ namespace <xsl:value-of select="$controllerns"/> {
|
||||||
|
|
||||||
<xsl:template name="menus">
|
<xsl:template name="menus">
|
||||||
<xsl:param name="entity"/>
|
<xsl:param name="entity"/>
|
||||||
|
/* there's no way I can find of producing a set of just those entities
|
||||||
|
* we'll need menus for. So we set up variables for all the menus we might
|
||||||
|
* need, and then only instantiate those we do need. */
|
||||||
|
<!-- xsl:for-each select="//adl:entity">
|
||||||
|
IList<<xsl:value-of select="concat( $entityns, '.', @name)"/>> <xsl:value-of select="concat( 'all', @name)"/> = null;
|
||||||
|
</xsl:for-each -->
|
||||||
<xsl:for-each select="$entity//adl:property[@type='entity']">
|
<xsl:for-each select="$entity//adl:property[@type='entity']">
|
||||||
<!-- $entity//adl:property because it is possible to have type='entity' in the key -->
|
<!-- $entity//adl:property because it is possible to have type='entity' in the key -->
|
||||||
/* produce a list of <xsl:value-of select="@entity"/> to populate the menu for <xsl:value-of select="@name"/> */
|
|
||||||
<xsl:call-template name="menu">
|
<xsl:call-template name="menu">
|
||||||
<xsl:with-param name="property" select="."/>
|
<xsl:with-param name="property" select="."/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
|
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:for-each select="$entity/adl:property[@type='link']">
|
<xsl:for-each select="$entity/adl:property[@type='link']">
|
||||||
<!-- $entity/adl:property because it is not possible to have type='link' in the key -->
|
<!-- $entity/adl:property because it is not possible to have type='link' in the key -->
|
||||||
|
@ -710,9 +742,7 @@ namespace <xsl:value-of select="$controllerns"/> {
|
||||||
<xsl:param name="property"/>
|
<xsl:param name="property"/>
|
||||||
<xsl:variable name="entity" select="//adl:entity[@name=$property/@entity]"/>
|
<xsl:variable name="entity" select="//adl:entity[@name=$property/@entity]"/>
|
||||||
PropertyBag["<xsl:value-of select="concat('all_', $property/@name)"/>"] =
|
PropertyBag["<xsl:value-of select="concat('all_', $property/@name)"/>"] =
|
||||||
hibernator.CreateCriteria(typeof(<xsl:value-of select="concat( $entityns, '.', $entity/@name)"/>))<xsl:for-each select="$entity//adl:property[@distinct='user']">
|
<xsl:value-of select="concat( 'FetchAll', $entity/@name)"/>( NHibernateHelper.GetCurrentSession());
|
||||||
<xsl:value-of select="concat('.AddOrder( new Order( "', @name, '", true))')"/>
|
|
||||||
</xsl:for-each>.List<<xsl:value-of select="concat( $entityns, '.', $property/@entity)"/>>();
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template name="primary-key-csharp-type">
|
<xsl:template name="primary-key-csharp-type">
|
||||||
|
|
Loading…
Reference in a new issue