Skip navigation

Un petit template par là…

Contenue du template acceleo correspondant à la métaclasse doctrine::Class

<%
metamodel /metamodels/doctrine/doctrine.ecore

%>

<%script type= »Classes.Class » name= »generateClass »%>
<%name.toU1Case()%>:
<%if (connection.nSize() == 1){%>
<%generateConnection%>
<%}%>
<%if (inheritance.nSize() == 1){%>
<%inheritance.generateInheritance%>
<%}%>
<%if (column.nSize() > 0 ){%>
<%generateColumns%>
<%}%>
<%if (relation.nSize() > 0){%>
<%generateRelations%>
<%}%>
<%if (actAs.nSize() > 0){%>
<%generateActAs%>
<%}%>
<%if (option.nSize() > 0){%>
<%generateOptions%>
<%}%>

<%–

ABOUT CONNECTION

–%>
<%script type= »Classes.Class » name= »generateConnection »%>
connection: <%connection.name%>

<%–

ABOUT INHERITANCY

–%>
<%script type= »Inheritancy.Inheritance » name= »generateInheritance » post= »trim() »%>
inheritance:
<%generateExtends%>
<%generateInheritanceType%>
<%if (eClass().name.equalsIgnoreCase(« ColumnAggregationInheritance »)){%><%filter(« ColumnAggregationInheritance »).generateManyToManyOptions%><%}%>

<%script type= »Inheritancy.Inheritance » name= »generateExtends »%>
extends: <%extends.name.toU1Case()%>

<%script type= »Inheritancy.Inheritance » name= »generateInheritanceType »%>
type: <%getInheritanceType%>

<%script type= »Inheritancy.Inheritance » name= »getInheritanceType » post= »trim() »%>
<%if (eClass().name.equalsIgnoreCase(« ColumnAggregationInheritance »)){%>column_aggregation
<%}else{%><%if (eClass().name.equalsIgnoreCase(« SimpleInheritance »)){%>simple
<%}else{%>concrete<%}%><%}%>

<%script type= »Inheritancy.ColumnAggregationInheritance » name= »generateManyToManyOptions »%>
<%generateKeyField%>
<%generateKeyValue%>

<%script type= »Inheritancy.ColumnAggregationInheritance » name= »generateKeyField »%>
<%if (sKeyField.length() > 0){%>  keyField: <%sKeyField%><%}else{%><%if (keyField.name.length() > 0){%>  keyField: <%keyField.name%><%}%><%}%>
<%script type= »Inheritancy.ColumnAggregationInheritance » name= »generateKeyValue »%>
<%if (keyValue.length() > 0){%>  keyValue: <%keyValue%><%}%>

<%–

ABOUT COLUMNS

–%>
<%script type= »Classes.Class » name= »generateColumns » post= »trim() »%>
<%if (column.nSize() > 0){%>
columns:
<%for (column){%>
<%generateColumn%>
<%}%>
<%}%>

<%script type= »Columns.Column » name= »generateColumn » post= »trim() »%>
<%name%>:
<%generateType%>
<%if (option.nSize() > 0 ){%>  <%generateOptions%><%}%>

<%script type= »Columns.Column » name= »generateType »%>
type: <%type.name.toLowerCase()%>(<%getMaxValue%>)

<%script type= »Columns.Column » name= »getMaxValue » post= »trim() » %>
<%constraint.filter(« withMaxLength »).max%>

<%– ABOUT COLUMN OPTIONS –%>
<%script type= »Columns.Column » name= »generateOptions » post= »trim() »%>
<%for (option){%>
<%name%>: <%value%>
<%}%>

<%–

ABOUT RELATIONS

–%>
<%script type= »Classes.Class » name= »generateRelations »%>

<%–

ABOUT actAs

–%>
<%script type= »Classes.Class » name= »generateActAs »%>

<%–

ABOUT Options

–%>
<%script type= »Classes.Class » name= »generateOptions »%>

Personnellement quand je vois ça et le modèle, je me dis qu’il y a encore et toujours des dimensions supérieures, à regarder, à rêver et à explorer.

A bientôt !

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :