Development

Classes diagram

digraph "classes" {

// Generated

charset="utf-8"
rankdir=BT
"0" [label="{DataVaultLoad|extract_schema\lextract_start_timestamp\lextract_table\lsource\lsql_load_script\lstaging_create_sql_statement\lstaging_schema\lstaging_table\ltarget_tables\l}", shape="record"];
"1" [label="{DataVaultField|data_type\lddl_in_staging\lis_mandatory\llength\lname\lname_in_staging\lparent_table_name\lparent_table_type\lposition\lprecision\lprefix\lrole\lscale\lsuffix\l}", shape="record"];
"2" [label="{DataVaultTable|fields\lfields_by_name\lfields_by_role\lhashkey_sql\lloading_order\lname\lschema\lsql_load_statement\lsql_placeholders\lstaging_schema\lstaging_table\l}", shape="record"];
"3" [label="{DrivingKeyField|\l}", shape="record"];
"4" [label="{EffectivitySatellite|driving_keys\lsql_load_statement\lsql_placeholders\l}", shape="record"];
"5" [label="{Hub|entity_name\lloading_order\lprefix\lsql_load_statement\lsql_placeholders\l}", shape="record"];
"6" [label="{Link|loading_order\lparent_hub_names\lsql_load_statement\lsql_placeholders\l}", shape="record"];
"7" [label="{RolePlayingHub|parent_table\lsql_load_statement\lsql_placeholders\l}", shape="record"];
"8" [label="{Satellite|hashdiff_sql\lloading_order\lparent_table\lparent_table_name\lsql_load_statement\lsql_placeholders\l}", shape="record"];
"4" -> "8" [arrowhead="empty", arrowtail="none"];
"5" -> "2" [arrowhead="empty", arrowtail="none"];
"6" -> "2" [arrowhead="empty", arrowtail="none"];
"7" -> "5" [arrowhead="empty", arrowtail="none"];
"8" -> "2" [arrowhead="empty", arrowtail="none"];

// Manually added; pyreverse doesn't understand type hints

"1" -> "2" [arrowhead="diamond", arrowtail="none", label="fields"];
"2" -> "0" [arrowhead="diamond", arrowtail="none", label="target_tables"];
}