62
62
import org .finos .legend .engine .protocol .pure .v1 .model .packageableElement .store .relational .model .operation .JoinPointer ;
63
63
import org .finos .legend .engine .shared .core .operational .Assert ;
64
64
import org .finos .legend .engine .shared .core .operational .errorManagement .EngineException ;
65
- import org .finos .legend .pure .generated .Root_meta_external_format_shared_binding_Binding ;
66
- import org .finos .legend .pure .generated .Root_meta_external_format_shared_binding_BindingTransformer_Impl ;
67
- import org .finos .legend .pure .generated .Root_meta_pure_functions_collection_Pair_Impl ;
68
- import org .finos .legend .pure .generated .Root_meta_pure_mapping_MappingClass_Impl ;
69
- import org .finos .legend .pure .generated .Root_meta_pure_metamodel_function_property_Property_Impl ;
70
- import org .finos .legend .pure .generated .Root_meta_pure_metamodel_relationship_Generalization_Impl ;
71
- import org .finos .legend .pure .generated .Root_meta_pure_metamodel_type_generics_GenericType_Impl ;
72
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_ColumnMapping_Impl ;
73
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_EmbeddedRelationalInstanceSetImplementation_Impl ;
74
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_FilterMapping_Impl ;
75
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_GroupByMapping_Impl ;
76
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_InlineEmbeddedRelationalInstanceSetImplementation_Impl ;
77
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_OtherwiseEmbeddedRelationalInstanceSetImplementation_Impl ;
78
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_RelationalPropertyMapping_Impl ;
79
- import org .finos .legend .pure .generated .Root_meta_relational_mapping_SemiStructuredEmbeddedRelationalInstanceSetImplementation_Impl ;
80
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_Column_Impl ;
81
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_DynaFunction_Impl ;
82
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_Filter_Impl ;
83
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_LiteralList_Impl ;
84
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_Literal_Impl ;
85
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_MultiGrainFilter_Impl ;
86
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_RelationalOperationElementWithJoin_Impl ;
87
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_SQLNull_Impl ;
88
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_Schema_Impl ;
89
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_TableAliasColumn_Impl ;
90
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_TableAlias_Impl ;
91
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Binary_Impl ;
92
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Char_Impl ;
93
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Decimal_Impl ;
94
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Json_Impl ;
95
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Numeric_Impl ;
96
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Other_Impl ;
97
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Real_Impl ;
98
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_SemiStructured_Impl ;
99
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_SmallInt_Impl ;
100
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Timestamp_Impl ;
101
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_TinyInt_Impl ;
102
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Varbinary_Impl ;
103
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_datatype_Varchar_Impl ;
104
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_join_JoinTreeNode_Impl ;
105
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_join_Join_Impl ;
106
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_relation_BusinessMilestoning_Impl ;
107
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_relation_BusinessSnapshotMilestoning_Impl ;
108
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_relation_ProcessingMilestoning_Impl ;
109
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_relation_Table_Impl ;
110
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_relation_TabularFunction_Impl ;
111
- import org .finos .legend .pure .generated .Root_meta_relational_metamodel_relation_View_Impl ;
112
- import org .finos .legend .pure .generated .core_pure_model_modelUnit ;
65
+ import org .finos .legend .pure .generated .*;
113
66
import org .finos .legend .pure .m2 .relational .M2RelationalPaths ;
114
67
import org .finos .legend .pure .m3 .compiler .postprocessing .processor .milestoning .MilestoningFunctions ;
115
68
import org .finos .legend .pure .m3 .compiler .postprocessing .processor .milestoning .MilestoningStereotype ;
@@ -419,6 +372,8 @@ private static MutableSet<Database> collectIncludedDBs(Store store, MutableSet<D
419
372
public static Schema processDatabaseSchema (org .finos .legend .engine .protocol .pure .v1 .model .packageableElement .store .relational .model .Schema srcSchema , CompileContext context , Database database )
420
373
{
421
374
Schema schema = new Root_meta_relational_metamodel_Schema_Impl (srcSchema .name , SourceInformationHelper .toM3SourceInformation (srcSchema .sourceInformation ), context .pureModel .getClass ("meta::relational::metamodel::Schema" ))._name (srcSchema .name );
375
+ schema ._stereotypes (srcSchema .stereotypes == null ? Lists .fixedSize .empty () : ListIterate .collect (srcSchema .stereotypes , stereotypePointer -> context .resolveStereotype (stereotypePointer .profile , stereotypePointer .value , stereotypePointer .profileSourceInformation , stereotypePointer .sourceInformation )));
376
+ schema ._taggedValues (srcSchema .taggedValues == null ? Lists .fixedSize .empty () : ListIterate .collect (srcSchema .taggedValues , taggedValue -> new Root_meta_pure_metamodel_extension_TaggedValue_Impl ("" , null , context .pureModel .getClass ("meta::pure::metamodel::extension::TaggedValue" ))._tag (context .resolveTag (taggedValue .tag .profile , taggedValue .tag .value , taggedValue .tag .profileSourceInformation , taggedValue .tag .sourceInformation ))._value (taggedValue .value )));
422
377
RichIterable <Table > tables = ListIterate .collect (srcSchema .tables , _table -> processDatabaseTable (_table , context , schema ));
423
378
RichIterable <TabularFunction > functions = ListIterate .collect (srcSchema .tabularFunctions , _function -> processDatabaseFunction (_function , context , schema ));
424
379
return schema ._tables (tables )._tabularFunctions (functions )._database (database );
@@ -441,6 +396,8 @@ public static Schema processDatabaseSchemaViewsSecondPass(org.finos.legend.engin
441
396
public static Table processDatabaseTable (org .finos .legend .engine .protocol .pure .v1 .model .packageableElement .store .relational .model .Table databaseTable , CompileContext context , org .finos .legend .pure .m3 .coreinstance .meta .relational .metamodel .Schema schema )
442
397
{
443
398
Table table = new Root_meta_relational_metamodel_relation_Table_Impl (databaseTable .name , SourceInformationHelper .toM3SourceInformation (databaseTable .sourceInformation ), context .pureModel .getClass ("meta::relational::metamodel::relation::Table" ))._name (databaseTable .name );
399
+ schema ._stereotypes (databaseTable .stereotypes == null ? Lists .fixedSize .empty () : ListIterate .collect (databaseTable .stereotypes , stereotypePointer -> context .resolveStereotype (stereotypePointer .profile , stereotypePointer .value , stereotypePointer .profileSourceInformation , stereotypePointer .sourceInformation )));
400
+ schema ._taggedValues (databaseTable .taggedValues == null ? Lists .fixedSize .empty () : ListIterate .collect (databaseTable .taggedValues , taggedValue -> new Root_meta_pure_metamodel_extension_TaggedValue_Impl ("" , null , context .pureModel .getClass ("meta::pure::metamodel::extension::TaggedValue" ))._tag (context .resolveTag (taggedValue .tag .profile , taggedValue .tag .value , taggedValue .tag .profileSourceInformation , taggedValue .tag .sourceInformation ))._value (taggedValue .value )));
444
401
MutableList <Column > columns = Lists .mutable .empty ();
445
402
MutableSet <String > validColumnNames = Sets .mutable .empty ();
446
403
MutableSet <String > duplicateColumns = Sets .mutable .empty ();
@@ -453,7 +410,10 @@ public static Table processDatabaseTable(org.finos.legend.engine.protocol.pure.v
453
410
else
454
411
{
455
412
validColumnNames .add (column .name );
456
- columns .add (new Root_meta_relational_metamodel_Column_Impl (column .name , SourceInformationHelper .toM3SourceInformation (column .sourceInformation ), context .pureModel .getClass ("meta::relational::metamodel::Column" ))._name (column .name )._name (column .name )._nullable (column .nullable )._type (transformDatabaseDataType (column .type , context ))._owner (table ));
413
+ Column col = new Root_meta_relational_metamodel_Column_Impl (column .name , SourceInformationHelper .toM3SourceInformation (column .sourceInformation ), context .pureModel .getClass ("meta::relational::metamodel::Column" ))._name (column .name )._name (column .name )._nullable (column .nullable )._type (transformDatabaseDataType (column .type , context ))._owner (table );
414
+ col ._stereotypes (column .stereotypes == null ? Lists .fixedSize .empty () : ListIterate .collect (column .stereotypes , stereotypePointer -> context .resolveStereotype (stereotypePointer .profile , stereotypePointer .value , stereotypePointer .profileSourceInformation , stereotypePointer .sourceInformation )));
415
+ col ._taggedValues (column .taggedValues == null ? Lists .fixedSize .empty () : ListIterate .collect (column .taggedValues , taggedValue -> new Root_meta_pure_metamodel_extension_TaggedValue_Impl ("" , null , context .pureModel .getClass ("meta::pure::metamodel::extension::TaggedValue" ))._tag (context .resolveTag (taggedValue .tag .profile , taggedValue .tag .value , taggedValue .tag .profileSourceInformation , taggedValue .tag .sourceInformation ))._value (taggedValue .value )));
416
+ columns .add (col );
457
417
}
458
418
}
459
419
@@ -476,6 +436,8 @@ public static TabularFunction processDatabaseFunction(org.finos.legend.engine.pr
476
436
public static View processDatabaseViewFirstPass (org .finos .legend .engine .protocol .pure .v1 .model .packageableElement .store .relational .model .View srcView , CompileContext context , Schema schema )
477
437
{
478
438
View view = new Root_meta_relational_metamodel_relation_View_Impl (srcView .name , SourceInformationHelper .toM3SourceInformation (srcView .sourceInformation ), context .pureModel .getClass ("meta::relational::metamodel::relation::View" ))._name (srcView .name );
439
+ view ._stereotypes (srcView .stereotypes == null ? Lists .fixedSize .empty () : ListIterate .collect (srcView .stereotypes , stereotypePointer -> context .resolveStereotype (stereotypePointer .profile , stereotypePointer .value , stereotypePointer .profileSourceInformation , stereotypePointer .sourceInformation )));
440
+ view ._taggedValues (srcView .taggedValues == null ? Lists .fixedSize .empty () : ListIterate .collect (srcView .taggedValues , taggedValue -> new Root_meta_pure_metamodel_extension_TaggedValue_Impl ("" , null , context .pureModel .getClass ("meta::pure::metamodel::extension::TaggedValue" ))._tag (context .resolveTag (taggedValue .tag .profile , taggedValue .tag .value , taggedValue .tag .profileSourceInformation , taggedValue .tag .sourceInformation ))._value (taggedValue .value )));
479
441
MutableList <Column > columns = ListIterate .collect (srcView .columnMappings , columnMapping -> new Root_meta_relational_metamodel_Column_Impl (columnMapping .name , SourceInformationHelper .toM3SourceInformation (columnMapping .sourceInformation ), context .pureModel .getClass ("meta::relational::metamodel::Column" ))._name (columnMapping .name )._type (new Root_meta_relational_metamodel_datatype_Varchar_Impl ("" , null , context .pureModel .getClass ("meta::relational::metamodel::datatype::Varchar" )))._owner (view ));
480
442
RichIterable <Column > pk = ListIterate .collect (srcView .primaryKey , s -> columns .select (column -> s .equals (column ._name ())).getFirst ());
481
443
return view ._columns (columns )._primaryKey (pk )._schema (schema );
0 commit comments