kreta/Tools/CodeGeneration/Templates/Server/Run/DataAccessMain.tdl
2024-03-13 00:33:46 +01:00

211 lines
8.4 KiB
Text

//***************************************************************************//
// Project fájl
//***************************************************************************//
USES Server/DataAccess/DataAccessProject;
// USES Server/DataAccess/DataAccessInterfaceProject;
//***************************************************************************//
// Entitással kapcsolatos dolgok //
//***************************************************************************//
USES Server/DataAccess/Entity/Entity;
USES Server/DataAccess/Entity/EntityCollection;
USES Server/DataAccess/Entity/General;
USES Server/DataAccess/Entity/Pooling;
USES Server/DataAccess/Entity/Property;
USES Server/DataAccess/Entity/XMLSupport;
USES Server/DataAccess/Entity/Validate;
USES Server/DataAccess/Entity/ZeroTypeAssociation;
USES Server/DataAccess/Entity/EntityTypeAssociation;
USES Server/DataAccess/Entity/EntityCollectionTypeAssociation;
USES Server/DataAccess/Entity/Midas;
USES Server/DataAccess/Entity/EntityState;
//***************************************************************************//
// Entitás Interface -hez tartozó dolgok //
//***************************************************************************//
USES Server/DataAccess/Entity/InterfaceBase;
USES Server/DataAccess/Entity/EntityInterface;
//***************************************************************************//
// Adathozzáférési réteghez (DA) tartozó dolgok //
//***************************************************************************//
USES Server/DataAccess/DataAccessor/EntityDA;
USES Server/DataAccess/DataAccessor/EntityCollectionDA;
USES Server/DataAccess/DataAccessor/LoadByID;
USES Server/DataAccess/DataAccessor/LoadBaseSet;
USES Server/DataAccess/DataAccessor/InsertEntity;
USES Server/DataAccess/DataAccessor/UpdateEntity;
USES Server/DataAccess/DataAccessor/DeleteEntity;
USES Server/DataAccess/DataAccessor/NoWaitForLock;
USES Server/DataAccess/DataAccessor/WaitForLock;
USES Server/DataAccess/DataAccessor/WaitLock;
USES Server/DataAccess/DataAccessor/UpdateAssociations;
USES Server/DataAccess/View/ViewBase;
//USES Server/DataAccess/DAUtil/AllAttributes;
//USES Server/DataAccess/DAUtil/AllAttributesAndAssociationID;
//USES Server/DataAccess/DAUtil/AllAssociationID;
USES Server/DataAccess/DBCommands/LoadCommands;
//***************************************************************************//
// Egyéb segéd dolgok //
//***************************************************************************//
USES Common/Converters;
USES Common/ModelDataRetreive;
USES Common/DAUtil;
USES Common/CommonUtil;
USES Common/StringUtil;
USES Common/CSharpUtil;
USES Common/std;
//***************************************************************************//
// Belépési pont //
//***************************************************************************//
proc main()
Init();
GenerateProjectFile();
GenerateEntities();
GenerateViews();
GenerateDAs();
// GenerateCollections();
// GenerateDirectXMLDAs();
end proc
//***************************************************************************//
// Általános inicializálás //
//***************************************************************************//
proc Init()
// Nyelv
setLanguage("csharp");
setVar("COMMANDCACHE", "False");
setVar("QUERY_MAX_RECORDS", "2000");
// Adatbázis
setVar("DBTYPE", "SDA");
//info = "Application Name: " [ProjectName] "\n";
// Célkönyvtárak
setVar("SOURCE_DIR", [OutputDir]);
setVar("PROJECTFILE_DIR", "/Kreta.DataAccessGenerated");
setVar("INTERFACEPROJECTFILE_DIR", "/Kreta.DataAccessInterfaceGenerated");
setVar("COLLECTION_DIR", "/Kreta.DataAccessGenerated/Collections");
setVar("DATAACCESSOR_DIR", "/Kreta.DataAccessGenerated/DataAccessors");
setVar("ENTITYBEAN_DIR", "/Kreta.DataAccessGenerated/Entities");
setVar("VIEW_DIR", "/Kreta.DataAccessGenerated/View");
// UTF-8 BOM bájtok
setVar("BOM", "\xEF\xBB\xBF");
end proc
//***************************************************************************//
// Legenerálja a project fájlt (DataAccess.csproj) //
// A generálás engedélyezéséhez a GENERATEPROJECTFILE globális változó //
// értékének True -nak kell lennie! //
//***************************************************************************//
proc GenerateProjectFile()
if ([GENERATEPROJECTFILE] == "True")
info = "Generating project file...\t\t\t";
setOutput( [SOURCE_DIR] [PROJECTFILE_DIR] "/" "Kreta.DataAccessGenerated.csproj" );
out = KretaGenerateDataAccessProject();
// setOutput( [SOURCE_DIR] [INTERFACEPROJECTFILE_DIR] "/" "Kreta.DataAccess.Interfaces.csproj" );
// out = KretaGenerateDataAccessIterfaceProject();
info = "DONE.\n";
end if
end proc
//***************************************************************************//
// Legenerálja a dataaccessorokat az összes entitáshoz. //
// A generálás engedélyezéséhez a DATAACCESSOR globális változó értékének //
// True -nak kell lennie! //
//***************************************************************************//
proc GenerateDAs()
if ([DATAACCESSOR] == "True")
info = "Generating DA for MClass...";
loop (Instances -> MClass WHERE GetStereoType([MClass]) == "Entity")
//info = "Generating DA for " [MClass.name] "...\t\t";
setOutput( [SOURCE_DIR] [DATAACCESSOR_DIR] "/" [MClass.name] "DA.cs" );
out = GenerateEntityDA( [MClass] );
//info = "DONE.\n";
end loop
info = "DONE.\n";
end if
end proc
//***************************************************************************//
// Legenerálja a tipizált listákat az összes entitáshoz. //
// A generálás engedélyezéséhez a ENTITYCOLLECTION globális változó //
// értékének True -nak kell lennie! //
//***************************************************************************//
proc GenerateCollections()
if ([ENTITYCOLLECTION] == "True")
// loop (Instances -> MClass WHERE GetStereoType([MClass]) == "Entity")
info = "Generating EntityCollections.cs";
setOutput( [SOURCE_DIR] [COLLECTION_DIR] "/" "EntityCollections.cs" );
// out = GenerateEntityCollection( [MClass] );
out = GenerateEntityCollection();
info = "DONE.\n";
// end loop
end if
end proc
//***************************************************************************//
// Legenerálja az összes entitás forráskódját. (Teszteszabásukkal együtt!) //
// A generálás engedélyezéséhez az ENTITY globális változó értékének True //
// -nak kell lennie! //
//***************************************************************************//
proc GenerateEntities()
if ([ENTITY] == "True")
info = "Generating Entity... ";
setOutput( [SOURCE_DIR] [INTERFACEPROJECTFILE_DIR] "/IEntity.cs" );
out = GenerateIEntityBaseClass();
setOutput( [SOURCE_DIR] [INTERFACEPROJECTFILE_DIR] "/IAssociatedCollection.cs" );
out = GenerateIAssociatedCollection();
loop (Instances -> MClass WHERE GetStereoType([MClass]) == "Entity")
//info = "Generating Entity " [MClass.name] "...\t\t";
setOutput( [SOURCE_DIR] [ENTITYBEAN_DIR] "/" [MClass.name] ".cs" );
out = GenerateEntity( [MClass] );
setOutput( [SOURCE_DIR] [INTERFACEPROJECTFILE_DIR] "/I"[MClass.name] ".cs" );
out = GenerateEntityInterface( [MClass] );
//info = "DONE.\n";
end loop
info = "DONE.\n";
end if
end proc
proc GenerateViews()
if ([ENTITY] == "True" or [VIEW] == "True")
info = "Generating view...";
loop (Instances -> MClass as ENTITY where IsClassView([ENTITY]) == "View")
//info = "Generating view " [ENTITY.name] "...\t\t";
setOutput( [SOURCE_DIR] [VIEW_DIR] "/" [ENTITY.name] ".cs" );
out = GenerateViewBase([ENTITY]);
//info = "DONE.\n";
end loop
info = "DONE.\n";
end if
end proc