/* A fájlban lévő sablonokat szinkronban kell tartani a szelekt generáló sablonokkal! */ /* Később kell egy kis refaktoring is! */ //***************************************************************************// // Legenerálja azt a ciklusmagot, amely egy DataReader-ből kiszippantja // // az entitás összes attribútumát. // // // // REKURZÍV! // //***************************************************************************// template GenerateLoadAllAttributesToEntityState(MClass as ENTITY, COUNTERNAME, ENTITYSTATENAME, READERNAME) // [GetEntityName([ENTITY])] attribútumai [loop (ENTITY -> MAttribute as ATTRIBUTE)] [ENTITYSTATENAME].[ConvertNameToEntityStateAttributeName(GetAttributeName([ATTRIBUTE]))] = [READERNAME].GetValue([COUNTERNAME]++); [end loop] [if (IsMasterEntity([ENTITY]) == "false")] [loop (ENTITY -> SuperClass as BASECLASS)] [GenerateLoadAllAttributesToEntityState([BASECLASS], [COUNTERNAME], [ENTITYSTATENAME], [READERNAME])][break] [end loop] [end if] end template //***************************************************************************// // Legenerálja azt az SQL parancsot helyőrzőkkel, ami felhozza az // // adatbázisból egy entitás összes attribútumát. // // // // VALÓSZÍNŰLEG MÁR ELAVULT, ÉS NEM HASZNÁLT! // //***************************************************************************// template GenerateLoadAllAttributesCommand(MClass as ENTITY) select [ConvertNameToSQLTableName([ENTITY.name])].ID, [GenerateLoadAllAttributesCommandColumns([ENTITY])] [GenerateSerialColumn([ENTITY])] from [GenerateLoadAllAttributesCommandTables([ENTITY])] {0} where [GenerateLoadAllAttributesCommandWhere([ENTITY])] {1} end template //***************************************************************************// // Legenerálja a SERIAL rendszeroszlop minősített nevét // //***************************************************************************// template GenerateSerialColumn(MClass as ENTITY) [if (IsMasterEntity([ENTITY]) == "false")] [loop (ENTITY -> SuperClass as BASECLASS)] [GenerateSerialColumn([BASECLASS])][break] [end loop] [else] [ConvertNameToSQLTableName([ENTITY.name])].SERIAL [end if] end template //***************************************************************************// // Legenerálja azt az SQL töredéket, ami egy entitás összes attribútumát // // tartalmazza. (a rendszerattribútumokat nem generálja le!) // // // // REKURZÍV! // //***************************************************************************// template GenerateLoadAllAttributesCommandColumns(MClass as ENTITY) [loop (ENTITY -> MAttribute as ATTRIBUTE)] [ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName([ATTRIBUTE.name])], [end loop] [if (IsMasterEntity([ENTITY]) == "false")] [loop (ENTITY -> SuperClass as BASECLASS)] [GenerateLoadAllAttributesCommandColumns([BASECLASS])][break] [end loop] [end if] end template //***************************************************************************// // Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez // // felsorolja annak tábláit. (join-ok nélkül!) // //***************************************************************************// template GenerateLoadAllAttributesCommandTables(MClass as ENTITY) [if (IsMasterEntity([ENTITY]) == "false")] [loop (ENTITY -> SuperClass as BASECLASS)] [GenerateLoadAllAttributesCommandTablesCore([BASECLASS])] [end loop] [end if] [ConvertNameToSQLTableName([ENTITY.name])] end template //***************************************************************************// // Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez // // felsorolja annak tábláit. (join-ok nélkül!) // // // // REKURZÍV! // //***************************************************************************// template GenerateLoadAllAttributesCommandTablesCore(MClass as ENTITY) [if (IsMasterEntity([ENTITY]) == "false")] [loop (ENTITY -> SuperClass as BASECLASS)] [GenerateLoadAllAttributesCommandTablesCore([BASECLASS])] [ConvertNameToSQLTableName([ENTITY.name])],[break] [end loop] [else] [ConvertNameToSQLTableName([ENTITY.name])], [end if] end template //***************************************************************************// // Legenerálja azt az SQL töredéket, ami egy entitás tábláit összekapcsolja. // // // // REKURZÍV! // //***************************************************************************// template GenerateLoadAllAttributesCommandWhere(MClass as ENTITY) [if (IsMasterEntity([ENTITY]) == "false")] ([ConvertNameToSQLTableName(GetBaseClassName([ENTITY], "qqq"))].ID = [ConvertNameToSQLTableName([ENTITY.name])].ID) [if (GetBaseBaseClassName([ENTITY], "") != "")] [loop (ENTITY -> SuperClass as BASECLASS)] and [GenerateLoadAllAttributesCommandWhere([BASECLASS])][break] [end loop] [end if] [end if] end template