112 lines
4.9 KiB
Text
112 lines
4.9 KiB
Text
//***************************************************************************//
|
|
// Visszaadja egy attribútumról, hogy kötelező-e. //
|
|
// True, ha igen; egyébként False. //
|
|
//***************************************************************************//
|
|
proc IsRequired(MAttribute)
|
|
return IsAttributeRequired([MAttribute]);
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// Visszaadja egy asszociációs végpontról, hogy navigálható-e. //
|
|
// True, ha igen; egyébként False. //
|
|
//***************************************************************************//
|
|
proc IsNavigable(MAssociationEnd)
|
|
if ([MAssociationEnd.isNavigable] == "TRUE")
|
|
return "True";
|
|
else
|
|
return "False";
|
|
end if
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// Visszaadja egy attribútumról, hogy csak alapértéket lehet neki értékül //
|
|
// adni, vagy sem. //
|
|
// True, ha igen; egyébként False. //
|
|
//***************************************************************************//
|
|
proc IsDefaultOnly(MAttribute)
|
|
return IsDefaultonlyAttribute([MAttribute]);
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// Visszaadja egy attribútumról, hogy csak olvasható-e vagy sem. //
|
|
//***************************************************************************//
|
|
proc IsReadOnly(MAttribute)
|
|
return IsReadonlyAttribute([MAttribute]);
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// UML típust konvertál a Delphi-s TClientDataset XML formátumában megadandó //
|
|
// típusra. //
|
|
//***************************************************************************//
|
|
proc GetMidasType(type)
|
|
switch(ToLower([type]))
|
|
case "integer": return "i4";
|
|
case "string": return "string.uni";
|
|
case "boolean": return "boolean";
|
|
case "float": return "r8"; // XXX
|
|
case "char": return "string.uni"; // XXX
|
|
case "datetime": return "dateTime";
|
|
case "id": return "i4";
|
|
case "binary": return "bin.hex\" SUBTYPE=\"Binary";
|
|
case "dictionaryitem": return "i4";
|
|
case "longstring": return "bin.hex\" SUBTYPE=\"Binary"; // XXX
|
|
end switch
|
|
return "object /* ERROR Ismeretlen tipus: " [type] " */";
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// Megdupláz egy számot. //
|
|
//***************************************************************************//
|
|
proc GetDoubleValue(value)
|
|
return add([value], [value]);
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// Visszaadja egy attribútum hosszát a Delphi-s TClientDataSet-nek //
|
|
// megfelelően. //
|
|
//***************************************************************************//
|
|
proc GetMidasAttributeLength(MAttribute)
|
|
if (([MAttribute.type] == "String") or ([MAttribute.type] == "Char"))
|
|
return add(GetAttributeLength([MAttribute]), GetAttributeLength([MAttribute]));
|
|
else
|
|
return GetAttributeLength([MAttribute]);
|
|
end if
|
|
end proc
|
|
|
|
|
|
//***************************************************************************//
|
|
// Generál egy Delphi-s karakterláncot, ami felsorolja egy adott entitás //
|
|
// összes ősosztályát, $ -ral elválasztva. (homlokzat) //
|
|
//***************************************************************************//
|
|
template GenerateSuperProviderString(MClass as ENTITY)
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
[GenerateSuperProviderStringCore([ENTITY])][break]
|
|
[end loop]
|
|
[end if]
|
|
''
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Generál egy Delphi-s karakterláncot, ami felsorolja egy adott entitás //
|
|
// összes ősosztályát, $ -ral elválasztva. (mag) //
|
|
// //
|
|
// REKURZÍV! //
|
|
//***************************************************************************//
|
|
template GenerateSuperProviderStringCore(MClass as ENTITY)
|
|
[if (IsMasterEntity([ENTITY]) == "false")]
|
|
[loop (ENTITY -> SuperClass as BASECLASS)]
|
|
'$[BASECLASS.name]' +
|
|
[GenerateSuperProviderStringCore([BASECLASS])][break]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
|