Forum:  Custom Templates

Thread:  How to generate conditional attributes on Entity fields and navigators


Emmanuel (User)   Posted on: 22-Oct-2016 15:57:55.
LLBLGen Pro 5.0.5 26 July 2016
LLBLGen Pro framework
.NET 4.5.2
C#
SD.Presets.Adapter.General
SQL Server


I need help getting started on customizing templates. I need to do the following:

1) Add my own attribute to entity fields that represent FKs to other entities (i.e. IsFKIdAttribute)

2) Add my own attribute to entity fields that are navigators to other entities based on whether the parent entity has Cascade on Delete set or not (i.e. IsCascadeDeleteAttribute)

I've been looking through template and lpt files to try to figure this out and cannot seem to find which templates/lpt that I need to modify.

Also, I can't find the "Template Studio IDE" tool mentioned in the forum. I assume one uses the built-in editor in the designer tool now, right?

Also, I can't find any documentation on the API of code generation classes. How is one supposed to write generator code without a reference document? For example, I went into the Element Search tool and selected "Entity" as the element type and then see that the code displayed was "return p.EntityModel.Vertices" which I then wanted to experiment with to figure out how to access the Fields of an entity but, without an API doc, I don't know what the property name for entity fields is.


Otis (LLBLGen Pro Team)   Posted on: 23-Oct-2016 10:21:43.
Emmanuel wrote:
LLBLGen Pro 5.0.5 26 July 2016
LLBLGen Pro framework
.NET 4.5.2
C#
SD.Presets.Adapter.General
SQL Server


I need help getting started on customizing templates. I need to do the following:

1) Add my own attribute to entity fields that represent FKs to other entities (i.e. IsFKIdAttribute)

2) Add my own attribute to entity fields that are navigators to other entities based on whether the parent entity has Cascade on Delete set or not (i.e. IsCascadeDeleteAttribute)

I've been looking through template and lpt files to try to figure this out and cannot seem to find which templates/lpt that I need to modify.

No need for template changes Regular Smiley It's built into the designer:
http://www.llblgen.com/Documentation/5.0/Designer/How%20To/AssignAttributesToElements.htm

You can specify rules on which elements the attributes (which can contain macros) should be applied on, at the project level. You can then at the element level even say you exclude that element from the rule (in the code generation info tab of the entity editor).

Quote:

Also, I can't find the "Template Studio IDE" tool mentioned in the forum. I assume one uses the built-in editor in the designer tool now, right?

That's old indeed. Since v3, the template editor is part of the designer.

Quote:

Also, I can't find any documentation on the API of code generation classes. How is one supposed to write generator code without a reference document? For example, I went into the Element Search tool and selected "Entity" as the element type and then see that the code displayed was "return p.EntityModel.Vertices" which I then wanted to experiment with to figure out how to access the Fields of an entity but, without an API doc, I don't know what the property name for entity fields is.

Please see the designer reference manual:
http://www.llblgen.com/Documentation/5.0/ReferenceManuals/Designer/html/70919A6F.htm
And the SDK docs:
http://www.llblgen.com/Documentation/5.0/SDK/index.htm

Available here:
http://www.llblgen.com/Pages/documentation.aspx

But again: no need for template changes, the attributes can be assigned in the designer with easy rules. Regular Smiley