internal override void GenerateSubCommands()
        {
            PSMAssociationMember associationMember = Project.TranslateComponent <PSMAssociationMember>(AssociationMemberGuid);

            if (associationMember is PSMClass)
            {
                cmdDeletePSMClassRecursive dc = new cmdDeletePSMClassRecursive(Controller);
                dc.Set(associationMember);
                Commands.Add(dc);
            }
            else if (associationMember is PSMContentModel)
            {
                cmdDeletePSMContentModelRecursive dcm = new cmdDeletePSMContentModelRecursive(Controller);
                dcm.Set(associationMember);
                Commands.Add(dcm);
            }
            else if (associationMember is PSMSchemaClass)
            {
                //Happens only when deleting PSM Schema. We clear the SchemaClass and let the atomic operation "delete PSM Schema" delete the actual class
                foreach (PSMAssociation a in associationMember.ChildPSMAssociations)
                {
                    cmdDeletePSMAssociationRecursive da = new cmdDeletePSMAssociationRecursive(Controller);
                    da.Set(a);
                    Commands.Add(da);
                }
            }
        }
        internal override void GenerateSubCommands()
        {
            PSMContentModel contentModel = Project.TranslateComponent <PSMContentModel>(ContentModelGuid);

            foreach (PSMAssociation a in contentModel.ChildPSMAssociations)
            {
                cmdDeletePSMAssociationRecursive da = new cmdDeletePSMAssociationRecursive(Controller);
                da.Set(a);
                Commands.Add(da);
            }
            Commands.Add(new acmdDeletePSMContentModel(Controller, contentModel));
        }
        internal override void GenerateSubCommands()
        {
            PSMClass psmClass = Project.TranslateComponent <PSMClass>(ClassGuid);

            foreach (PSMAssociation a in psmClass.ChildPSMAssociations)
            {
                cmdDeletePSMAssociationRecursive da = new cmdDeletePSMAssociationRecursive(Controller);
                da.Set(a);
                Commands.Add(da);
            }
            Commands.Add(new cmdDeleteRootPSMClass(Controller)
            {
                ClassGuid = ClassGuid
            });
        }