import models/CoreFormalism as CF

CF core {
    Group admin_group {
        name = "admin"
    }

    Group nobody {
        name = "nobody"
    }

    User admin_user {
        name = "admin"
        admin = True
        password = "c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec"
    }

    ownedBy (admin_group, admin_user) {}
    belongsTo (admin_user, admin_group) {}

    Folder root {
        name = ""
        permissions = "221"

        Folder formalisms {
            name = "formalisms"
            permissions = "221"

            Model SimpleClassDiagrams {
                name = "formalisms/SimpleClassDiagrams"
                location = "models/SimpleClassDiagrams/model"
                permissions = "221"
            }

            Model TypeMapping {
                name = "formalisms/TypeMapping"
                location = "models/TypeMapping/model"
                permissions = "221"
            }

            Model Tracability {
                name = "formalisms/Tracability"
                location = "models/Tracability/model"
                permissions = "221"
            }

            Model ProcessModel {
                name = "formalisms/ProcessModel"
                location = "models/ProcessModel/model"
                permissions = "221"
            }

            Model ActionLanguage {
                name = "formalisms/ActionLanguage"
                location = "models/ActionLanguage/model"
                permissions = "221"
            }

            Model ManualOperation {
                name = "formalisms/ManualOperation"
                location = "models/ManualOperation/model"
                permissions = "221"
            }

            Model Bottom {
                name = "formalisms/Bottom"
                location = "models/Bottom/model"
                permissions = "221"
            }
        }

        Folder models {
            name = "models"
            permissions = "221"

            ActionLanguage conformance_mv {
                name = "models/conformance_mv"
                location = "models/Conformance_MV/model"
                permissions = "221"
            }

        }

        Folder typemappings {
            name = "type mappings"
            permissions = "221"

            Folder tm_formalisms {
                name = "type mappings/formalisms"
                permissions = "110"

                TypeMapping TM_SimpleClassDiagrams {
                    name = "type mappings/formalisms/SimpleClassDiagrams"
                    location = "models/SimpleClassDiagrams/types"
                    permissions = "221"
                }

                TypeMapping TM_TypeMapping {
                    name = "type mappings/formalisms/TypeMapping"
                    location = "models/TypeMapping/types"
                    permissions = "221"
                }

                TypeMapping TM_Tracability{
                    name = "type mappings/formalisms/Tracability"
                    location = "models/Tracability/types"
                    permissions = "221"
                }

                TypeMapping TM_ProcessModel {
                    name = "type mappings/formalisms/ProcessModel"
                    location = "models/ProcessModel/types"
                    permissions = "221"
                }

                TypeMapping TM_ActionLanguage {
                    name = "type mappings/formalisms/ActionLanguage"
                    location = "models/ActionLanguage/types"
                    permissions = "221"
                }

                TypeMapping TM_ManualOperation {
                    name = "type mappings/formalisms/ManualOperation"
                    location = "models/ManualOperation/types"
                    permissions = "221"
                }

                TypeMapping TM_Bottom {
                    name = "type mappings/formalisms/Bottom"
                    location = "models/Bottom/types"
                    permissions = "221"
                }

            }

            Folder tm_models {
                name = "type mappings/models"
                permissions = "110"

                TypeMapping TM_conformance_mv {
                    name = "type mappings/models/conformance_mv"
                    location = "models/Conformance_MV/types"
                    permissions = "221"
                }
            }

            Folder tm_administration {
                name = "type mappings/administration"
                permissions = "100"

                TypeMapping TM_Core {
                    name = "type mappings/administration/core"
                    location = "models/core/types"
                    permissions = "220"
                }

                TypeMapping TM_CoreFormalism {
                    name = "type mappings/administration/CoreFormalism"
                    location = "models/CoreFormalism/types"
                    permissions = "221"
                }
            }

            Folder tm_users {
                name = "type mapping/users"
                permissions = "110"

                Folder tm_users_admin {
                    name = "type mapping/users/admin"
                    permissions = "100"
                }
            }
        }

        Folder users {
            name = "users"
            permissions = "221"

            Folder users_admin {
                name = "users/admin"
                permissions = "200"
            }
        }

        Folder administration {
            name = "administration"
            permissions = "110"

            Model CoreFormalism {
                name = "administration/CoreFormalism"
                location = "models/CoreFormalism/model"
                permissions = "221"
            }

            Model Core {
                name = "administration/core"
                location = "models/core/model"
                permissions = "220"
            }
        }
    }

    group (root, admin_group) {}
    group (formalisms, admin_group) {}
    group (SimpleClassDiagrams, admin_group) {}
    group (TypeMapping, admin_group) {}
    group (Tracability, admin_group) {}
    group (ProcessModel, admin_group) {}
    group (ActionLanguage, admin_group) {}
    group (ManualOperation, admin_group) {}
    group (Bottom, admin_group) {}
    group (models, admin_group) {}
    group (conformance_mv, admin_group) {}
    group (administration, admin_group) {}
    group (CoreFormalism, admin_group) {}
    group (Core, admin_group) {}
    group (users, admin_group) {}
    group (users_admin, nobody) {}

    group (typemappings, admin_group) {}
    group (tm_formalisms, admin_group) {}
    group (TM_SimpleClassDiagrams, admin_group) {}
    group (TM_TypeMapping, admin_group) {}
    group (TM_Tracability, admin_group) {}
    group (TM_ProcessModel, admin_group) {}
    group (TM_ActionLanguage, admin_group) {}
    group (TM_Bottom, admin_group) {}
    group (TM_ManualOperation, admin_group) {}
    group (tm_models, admin_group) {}
    group (TM_conformance_mv, admin_group) {}
    group (tm_administration, admin_group) {}
    group (TM_CoreFormalism, admin_group) {}
    group (TM_Core, admin_group) {}
    group (tm_users, admin_group) {}
    group (tm_users_admin, admin_group) {}

    owner (root, admin_user) {}
    owner (formalisms, admin_user) {}
    owner (SimpleClassDiagrams, admin_user) {}
    owner (TypeMapping, admin_user) {}
    owner (Tracability, admin_user) {}
    owner (ProcessModel, admin_user) {}
    owner (ActionLanguage, admin_user) {}
    owner (ManualOperation, admin_user) {}
    owner (Bottom, admin_user) {}
    owner (models, admin_user) {}
    owner (conformance_mv, admin_user) {}
    owner (administration, admin_user) {}
    owner (CoreFormalism, admin_user) {}
    owner (Core, admin_user) {}
    owner (users, admin_user) {}
    owner (users_admin, admin_user) {}

    owner (typemappings, admin_user) {}
    owner (tm_formalisms, admin_user) {}
    owner (TM_SimpleClassDiagrams, admin_user) {}
    owner (TM_TypeMapping, admin_user) {}
    owner (TM_Tracability, admin_user) {}
    owner (TM_ProcessModel, admin_user) {}
    owner (TM_ActionLanguage, admin_user) {}
    owner (TM_ManualOperation, admin_user) {}
    owner (TM_Bottom, admin_user) {}
    owner (tm_models, admin_user) {}
    owner (TM_conformance_mv, admin_user) {}
    owner (tm_administration, admin_user) {}
    owner (TM_CoreFormalism, admin_user) {}
    owner (TM_Core, admin_user) {}
    owner (tm_users, admin_user) {}
    owner (tm_users_admin, admin_user) {}

    transformInput (conformance_mv, SimpleClassDiagrams) {
        name = "model"
    }
    transformInput (conformance_mv, SimpleClassDiagrams) {
        name = "metamodel"
    }

    instanceOf inst_SCD (SimpleClassDiagrams, SimpleClassDiagrams) {}
    instanceOf inst_TM (TypeMapping, SimpleClassDiagrams) {}
    instanceOf inst_trace (Tracability, SimpleClassDiagrams) {}
    instanceOf inst_pm (ProcessModel, SimpleClassDiagrams) {}
    instanceOf inst_al (ActionLanguage, SimpleClassDiagrams) {}
    instanceOf inst_man (ManualOperation, SimpleClassDiagrams) {}
    instanceOf inst_conf (conformance_mv, ActionLanguage) {}
    instanceOf inst_cf (CoreFormalism, SimpleClassDiagrams) {}
    instanceOf inst_core (Core, CoreFormalism) {}
    instanceOf inst_Bottom (Bottom, SimpleClassDiagrams) {}

    instanceOf TM_inst_SCD (TM_SimpleClassDiagrams, TypeMapping) {}
    instanceOf TM_inst_TM (TM_TypeMapping, TypeMapping) {}
    instanceOf TM_inst_trace (TM_Tracability, TypeMapping) {}
    instanceOf TM_inst_pm (TM_ProcessModel, TypeMapping) {}
    instanceOf TM_inst_al (TM_ActionLanguage, TypeMapping) {}
    instanceOf TM_inst_man (TM_ManualOperation, TypeMapping) {}
    instanceOf TM_inst_conf (TM_conformance_mv, TypeMapping) {}
    instanceOf TM_inst_cf (TM_CoreFormalism, TypeMapping) {}
    instanceOf TM_inst_core (TM_Core, TypeMapping) {}
    instanceOf TM_inst_Bottom (TM_Bottom, TypeMapping) {}

    typing (inst_SCD, TM_SimpleClassDiagrams) {}
    typing (inst_TM, TM_TypeMapping) {}
    typing (inst_trace, TM_Tracability) {}
    typing (inst_pm, TM_ProcessModel) {}
    typing (inst_al, TM_ActionLanguage) {}
    typing (inst_man, TM_ManualOperation) {}
    typing (inst_conf, TM_conformance_mv) {}
    typing (inst_cf, TM_CoreFormalism) {}
    typing (inst_core, TM_Core) {}
    typing (inst_Bottom, TM_Bottom) {}

    semantics (inst_SCD, conformance_mv) {}
    semantics (inst_TM, conformance_mv) {}
    semantics (inst_trace, conformance_mv) {}
    semantics (inst_pm, conformance_mv) {}
    semantics (inst_al, conformance_mv) {}
    semantics (inst_man, conformance_mv) {}
    semantics (inst_conf, conformance_mv) {}
    semantics (inst_cf, conformance_mv) {}
    semantics (inst_core, conformance_mv) {}
    semantics (inst_Bottom, conformance_mv) {}

    semantics (TM_inst_SCD, conformance_mv) {}
    semantics (TM_inst_TM, conformance_mv) {}
    semantics (TM_inst_trace, conformance_mv) {}
    semantics (TM_inst_pm, conformance_mv) {}
    semantics (TM_inst_al, conformance_mv) {}
    semantics (TM_inst_man, conformance_mv) {}
    semantics (TM_inst_conf, conformance_mv) {}
    semantics (TM_inst_cf, conformance_mv) {}
    semantics (TM_inst_core, conformance_mv) {}
    semantics (TM_inst_Bottom, conformance_mv) {}
}

export core to models/core
