505 lines
28 KiB
Text
505 lines
28 KiB
Text
//***************************************************************************//
|
|
// 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, PREFIX)
|
|
[loop (ENTITY -> MAttribute as ATTRIBUTE)]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName([ATTRIBUTE.name])] ""[PREFIX][ATTRIBUTE.name]"",
|
|
[end loop]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAttributesCommandColumns([BASECLASS], [PREFIX])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja egy entitás összes név oszlopát, minősített nevekkel. //
|
|
// (SQL töredék) //
|
|
// //
|
|
// REKURZÍV! //
|
|
//***************************************************************************//
|
|
template GenerateLoadNameColumns(MClass as ENTITY, ENTITYALIAS, PREFIX)
|
|
[loop (ENTITY -> MAttribute as ATTRIBUTE where GetStereoTypeForAttribute([ATTRIBUTE]) == "DisplayName")]
|
|
[ConvertNameToSQLTableName([ENTITYALIAS] "_" [ENTITY.id])].[ConvertNameToSQLColumnName([ATTRIBUTE.name])] ""[PREFIX]a[ENTITYALIAS]_[ATTRIBUTE.name]"",
|
|
[end loop]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadNameColumns([BASECLASS], [ENTITYALIAS], [PREFIX])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja azt az SQL töredéket, ami egy entitás összes attribútumát, //
|
|
// asszociációs partnereinek azonosítóját és neveit tartalmazza. //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAssociationIDAndNameColumns(MClass as ENTITY, PREFIX)
|
|
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
[ConvertNameToSQLTableName([PARTNER.name])].ID as [ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
|
|
[else]
|
|
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
|
|
[/*-- XXX [GetRoleName([ENDROLE])] ez az asszociáció asszociációs osztállyal rendelkezik, és még nincs megvalósítva, lásd GenerateLoadAllAttributesAndEntityAssociationsIDToEntityState*/]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
|
|
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity"))]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))],
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[end loop]
|
|
[end loop]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAssociationIDCommandColumns([BASECLASS])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja az asszociációs partnerek azonosító oszlopait (SQL töredék) //
|
|
// //
|
|
// REKURZÍV! //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAssociationIDCommandColumns(MClass as ENTITY)
|
|
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
[ConvertNameToSQLTableName([PARTNER.name])].ID as [ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[else]
|
|
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
|
|
[/*-- XXX [GetRoleName([ENDROLE])] ez az asszociáció asszociációs osztállyal rendelkezik, és még nincs megvalósítva, lásd GenerateLoadAllAttributesAndEntityAssociationsIDToEntityState*/]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
|
|
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity"))]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))],
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
|
|
[end loop]
|
|
[end loop]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAssociationIDCommandColumns([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 GenerateJoinedLoadAllAttributesCommandTables(MClass as ENTITY, MClass as BASE, MAssociationEnd as STARTROLE)
|
|
inner join [ConvertNameToSQLTableName([ENTITY.name])] on ([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([BASE.name])].ID) [/*--4*/]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS], [ENTITY])]
|
|
[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)
|
|
[ConvertNameToSQLTableName([ENTITY.name])]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS], [ENTITY])]
|
|
[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!) //
|
|
// //
|
|
// REKURZÍV! //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAttributesCommandTablesCore(MClass as ENTITY, MClass as BASE)
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
inner join [ConvertNameToSQLTableName([ENTITY.name])] on ([ConvertNameToSQLTableName([BASE.name])].ID = [ConvertNameToSQLTableName([ENTITY.name])].ID) [/*--1*/]
|
|
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS], [ENTITY])]
|
|
[break]
|
|
[end loop]
|
|
[else]
|
|
inner join [ConvertNameToSQLTableName([ENTITY.name])] on ([ConvertNameToSQLTableName([BASE.name])].ID = [ConvertNameToSQLTableName([ENTITY.name])].ID) [/*--2*/]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja egy entitás asszociációs partner azonosító alapján való //
|
|
// lekérdezéséhez szükséges kapcsolótáblákat. //
|
|
// (SQL töredék a from szekcióban) //
|
|
//***************************************************************************//
|
|
template GenerateSwitchTablesByAssociation(MClass as ENTITY, MClass as PARTNER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE)
|
|
[if ([ENTITY.name] != [PARTNER.name])]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
[end if]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
[ConvertNameToSQLTableName([PARTNER.name])] T_T_PARTNER,
|
|
[else]
|
|
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] T_T_SWITCH,
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[if (([ENDROLE.multiplicity] == "1..*") or ([ENDROLE.multiplicity] == "*") or ([ENDROLE.multiplicity] == "0..*"))]
|
|
[if (([STARTROLE.multiplicity] == "1") or ([STARTROLE.multiplicity] == "0..1"))]
|
|
[ConvertNameToSQLTableName([PARTNER.name])] T_T_PARTNER,
|
|
[else]
|
|
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] T_T_SWITCH,
|
|
[end if]
|
|
[end if]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1" or [STARTROLE.multiplicity] == "0..1")]
|
|
[ConvertNameToSQLTableName([PARTNER.name])] T_T_PARTNER,
|
|
[else]
|
|
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] T_T_SWITCH,
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja azt az SQL töredéket, ami összekapcsolja az entitás //
|
|
// asszociációinak tábláit, az entitás táblái nélkül. //
|
|
// (from szekció az SQL-ben) //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAssociationIDAndNameColumnsCommandJoin(MClass as ENTITY)
|
|
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoinCore([ENTITY], [ENTITY])]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja azt az SQL töredéket, ami összekapcsolja az entitás //
|
|
// asszociációinak tábláit, az entitás táblái nélkül. //
|
|
// (from szekció az SQL-ben) //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAssociationIDAndNameColumnsCommandJoinCore(MClass as ENTITY, MClass as MASTER)
|
|
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
left join [ConvertNameToSQLTableName([PARTNER.name])] on [ConvertNameToSQLTableName([PARTNER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
|
|
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
|
|
[else]
|
|
left join [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))] on [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
|
|
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAssociationIDCommandJoinCore([BASECLASS], [MASTER])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja az asszociációs partnerek tábláinak join-jait. (SQL töredék) //
|
|
// //
|
|
// REKURZÍV! //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAssociationIDCommandJoinCore(MClass as ENTITY, MClass as MASTER)
|
|
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
left join [ConvertNameToSQLTableName([PARTNER.name])] on [ConvertNameToSQLTableName([PARTNER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
|
|
[else]
|
|
left join [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))] on [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateLoadAllAssociationIDCommandJoinCore([BASECLASS], [MASTER])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja azt az SQL töredéket, ami összekapcsolja az entitás //
|
|
// asszociációinak tábláit, az entitás táblái nélkül. Csak azokat az //
|
|
// asszociációs partner táblákat kapcsolja hozzá, amelyek rendelkeznek név //
|
|
// attribútummal! //
|
|
// (from szekció az SQL-ben) //
|
|
// //
|
|
// REKURZÍV! //
|
|
//***************************************************************************//
|
|
template GenerateLoadNameColumnsCommandJoinCore(MClass as PARTNER, MClass as MASTER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE)
|
|
[if (HasNameAttribures([PARTNER]) == "True")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
inner join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].ID = [ConvertNameToSQLTableName([MASTER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
left join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].ID = [ConvertNameToSQLTableName([MASTER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
left join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
|
|
[else]
|
|
left join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on
|
|
([ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].ID = [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))])
|
|
and
|
|
([ConvertNameToSQLTableName([MASTER.name])].ID = [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[if (IsMasterEntity([PARTNER]) == "false")]
|
|
[loop (PARTNER -> SuperClass as BASECLASS)]
|
|
[GenerateLoadNameColumnsCommandJoinCore([BASECLASS], [MASTER], [STARTROLE], [ENDROLE])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
//***************************************************************************//
|
|
// A where szekciót generálja le egy SQL-hez, ami egy adott entitást kérdez //
|
|
// le asszociációs partnerek alapján. //
|
|
//***************************************************************************//
|
|
template GenerateAssociationJoinByAssociationWhere(MClass as ENTITY, MClass as PARTNER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE)
|
|
and
|
|
[if ([ENTITY.name] != [PARTNER.name])]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[end if]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1")]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_PARTNER.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
and
|
|
(T_T_PARTNER.ID = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[else]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
and
|
|
(T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[if (([ENDROLE.multiplicity] == "1..*") or ([ENDROLE.multiplicity] == "*") or ([ENDROLE.multiplicity] == "0..*"))]
|
|
[if (([STARTROLE.multiplicity] == "1") or ([STARTROLE.multiplicity] == "0..1"))]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_PARTNER.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
and
|
|
(T_T_PARTNER.ID = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[else]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
and
|
|
(T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[end if]
|
|
[end if]
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "1" or [STARTROLE.multiplicity] == "0..1")]
|
|
(T_T_PARTNER.ID = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
and
|
|
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_PARTNER.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
[else]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
|
|
and
|
|
(T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//***************************************************************************//
|
|
// Entitás verziójának felhozása //
|
|
//***************************************************************************//
|
|
template GenerateGetSerialCommand(MClass as ENTITY)
|
|
select
|
|
[GenerateSerialColumn([ENTITY])]
|
|
from
|
|
[GenerateLoadAllAttributesCommandTables([ENTITY])]
|
|
where
|
|
[if (IsMasterEntity([ENTITY]) == "true")]
|
|
([ConvertNameToSQLTableName([ENTITY.name])].SERIAL >= 0)
|
|
[else]
|
|
[end if]
|
|
and ([ConvertNameToSQLTableName([ENTITY.name])].ID = :[ConvertNameToCommandParameterName("ID")])
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja azt a teljes SQL-t helyőrzőkkel, ami egy entitást tölt fel //
|
|
// az asszociációs partnereinek azonosítóival együtt. //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAttributesAndEntityAssociationsIDCommand(MClass as ENTITY, MAXLASTCHANGEDONLY)
|
|
select /*+ {QID}{FID} {HINT} */
|
|
[if ([MAXLASTCHANGEDONLY] == "True")]
|
|
GETDATE(), COUNT(*)
|
|
[else]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].ID ""ID"",
|
|
[GenerateLoadAllAttributesCommandColumns([ENTITY], "")]
|
|
[GenerateLoadAllAssociationIDAndNameColumns([ENTITY], "")]
|
|
[GenerateSerialColumn([ENTITY])]
|
|
[end if]
|
|
from
|
|
[GenerateLoadAllAttributesCommandTables([ENTITY])]
|
|
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ENTITY])]
|
|
{INNERFILTERS}
|
|
where
|
|
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ENTITY]))].SERIAL >= 0)
|
|
[if (IsMasterEntity([ENTITY]) == "true")]
|
|
[else]
|
|
[end if]
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Entitás feltöltése partner alapján (SQL töredék) //
|
|
//***************************************************************************//
|
|
/* nem használt
|
|
template GenerateLoadAllAttributesAndEntityAssociationsIDByAssociationCommand(MClass as ENTITY, MClass as PARTNER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE, MAXLASTCHANGEDONLY)
|
|
select
|
|
[if ([MAXLASTCHANGEDONLY] == "True")]
|
|
GETDATE(), COUNT(*)
|
|
[else]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].ID ""ID"",
|
|
[GenerateLoadAllAttributesCommandColumns([ENTITY], "")]
|
|
[GenerateLoadAllAssociationIDAndNameColumns([ENTITY], "")]
|
|
[GenerateSerialColumn([ENTITY])]
|
|
[end if]
|
|
from
|
|
[GenerateSwitchTablesByAssociation([ENTITY], [PARTNER], [STARTROLE], [ENDROLE])]
|
|
[GenerateLoadAllAttributesCommandTables([ENTITY])]
|
|
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ENTITY])]
|
|
{INNERFILTERS}
|
|
where
|
|
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ENTITY]))].SERIAL >= 0)
|
|
[if (IsMasterEntity([ENTITY]) == "true")]
|
|
[else]
|
|
[end if]
|
|
[GenerateAssociationJoinByAssociationWhere([ENTITY], [PARTNER], [STARTROLE], [ENDROLE])]
|
|
end template
|
|
*/
|
|
|
|
|
|
//***************************************************************************//
|
|
// Entitás feltöltése partner alapján asszociációs osztállyal együtt //
|
|
//***************************************************************************//
|
|
template GenerateLoadAllAttributesAndEntityAssociationsIDByAssociationCommandWithAssociationClass(MClass as ENTITY, MClass as PARTNER, MClass as ASSOCIATIONCLASS, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE, MAXLASTCHANGEDONLY)
|
|
select /*+ {QID}{FID} {HINT} */
|
|
[if ([MAXLASTCHANGEDONLY] == "True")]
|
|
GETDATE(), COUNT(*)
|
|
[else]
|
|
[ConvertNameToSQLTableName([ENTITY.name])].ID ""ID"",
|
|
[GenerateLoadAllAttributesCommandColumns([ENTITY], "")]
|
|
[GenerateLoadAllAssociationIDAndNameColumns([ENTITY], "")]
|
|
[GenerateSerialColumn([ENTITY])],
|
|
|
|
[ConvertNameToSQLTableName([ASSOCIATIONCLASS.name])].ID ""_ID"",
|
|
[GenerateLoadAllAttributesCommandColumns([ASSOCIATIONCLASS], "_")]
|
|
[GenerateLoadAllAssociationIDAndNameColumns([ASSOCIATIONCLASS], "_")]
|
|
[GenerateSerialColumn([ASSOCIATIONCLASS])]
|
|
[end if]
|
|
from
|
|
[GenerateLoadAllAttributesCommandTables([ENTITY])]
|
|
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ENTITY])]
|
|
[GenerateJoinedLoadAllAttributesCommandTables([ASSOCIATIONCLASS], [ENTITY], [STARTROLE])]
|
|
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ASSOCIATIONCLASS])]
|
|
{INNERFILTERS}
|
|
where
|
|
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ENTITY]))].SERIAL >= 0)
|
|
[if (IsMasterEntity([ENTITY]) == "true")]
|
|
[else]
|
|
[end if]
|
|
and
|
|
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ASSOCIATIONCLASS]))].SERIAL >= 0)
|
|
[if (IsMasterEntity([ASSOCIATIONCLASS]) == "true")]
|
|
[else]
|
|
[end if]
|
|
and
|
|
([ConvertNameToSQLTableName([ASSOCIATIONCLASS.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
|
|
end template
|
|
|