public void SetCompositeRole(IRelationType relationType, IObject role)
        {
            this.AssertNotDeleted();

            if (role == null)
            {
                this.RemoveCompositeRole(relationType);
                return;
            }

            RoleAssertions.CompositeRoleChecks(this, relationType.RoleType, role);

            switch (relationType.Multiplicity)
            {
            case Multiplicity.OneToOne:
                this.session.SetCompositeRoleOneToOne(this.objectId, relationType.RoleType, role.Id);
                return;

            case Multiplicity.ManyToOne:
                this.session.SetCompositeRoleManyToOne(this.objectId, relationType.RoleType, role.Id);
                return;

            default:
                throw new Exception("Unsupported multiplicity " + relationType.Multiplicity);
            }
        }
Exemple #2
0
        public virtual void RemoveCompositeRole(IRelationType relationType)
        {
            this.AssertExist();

            RoleAssertions.CompositeRoleChecks(this, relationType.RoleType);

            this.Roles.RemoveCompositeRole(relationType.RoleType);
        }
Exemple #3
0
        public virtual void RemoveCompositeRoles(IRelationType relationType)
        {
            this.AssertExist();

            RoleAssertions.CompositeRoleChecks(this, relationType.RoleType);

            var previousRoles = this.Roles.GetCompositesRole(relationType.RoleType);

            foreach (var previousRole in previousRoles)
            {
                this.Roles.RemoveCompositeRole(relationType.RoleType, this.Session.State.GetOrCreateReferenceForExistingObject(previousRole, this.Session).Strategy);
            }
        }
Exemple #4
0
        public virtual void RemoveCompositeRoles(IRelationType relationType)
        {
            this.AssertExist();

            var roleType = relationType.RoleType;

            RoleAssertions.CompositeRoleChecks(this, roleType);

            var previousRoles = this.Roles.GetCompositeRoles(roleType);

            foreach (var previousRole in previousRoles)
            {
                this.Roles.RemoveCompositeRole(roleType, this.SqlSession.GetOrCreateAssociationForExistingObject(previousRole).Strategy);
            }
        }
Exemple #5
0
        public virtual void SetCompositeRole(IRelationType relationType, IObject newRoleObject)
        {
            if (newRoleObject == null)
            {
                this.RemoveCompositeRole(relationType);
                return;
            }

            this.AssertExist();

            RoleAssertions.CompositeRoleChecks(this, relationType.RoleType, newRoleObject);

            var newRoleObjectId = (Strategy)newRoleObject.Strategy;

            this.Roles.SetCompositeRole(relationType.RoleType, newRoleObjectId);
        }
        public void RemoveCompositeRole(IRoleType roleType)
        {
            this.AssertNotDeleted();
            RoleAssertions.CompositeRoleChecks(this, roleType);

            switch (roleType.RelationType.Multiplicity)
            {
            case Multiplicity.OneToOne:
                this.session.RemoveCompositeRoleOneToOne(this.objectId, roleType);
                return;

            case Multiplicity.ManyToOne:
                this.session.RemoveCompositeRoleManyToOne(this.objectId, roleType);
                return;

            default:
                throw new Exception("Unsupported multiplicity " + roleType.RelationType.Multiplicity);
            }
        }