//***************************************************************************// // 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