211 lines
8.4 KiB
Text
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
|