public override IPermission Union(IPermission target) { if (target == null) { return(this.Copy()); } if (target.GetType() != base.GetType()) { throw System.Data.Common.ADP.PermissionTypeMismatch(); } if (this.IsUnrestricted()) { return(this.Copy()); } OraclePermission permission = (OraclePermission)target.Copy(); if (!permission.IsUnrestricted()) { permission._allowBlankPassword |= this.AllowBlankPassword; if (this._keyvalues != null) { foreach (System.Data.OracleClient.DBConnectionString str in this._keyvalues) { permission.AddPermissionEntry(str); } } } if (!permission.IsEmpty()) { return(permission); } return(null); }
public override IPermission Intersect(IPermission target) { if (target == null) { return(null); } if (target.GetType() != base.GetType()) { throw System.Data.Common.ADP.PermissionTypeMismatch(); } if (this.IsUnrestricted()) { return(target.Copy()); } OraclePermission permission2 = (OraclePermission)target; if (permission2.IsUnrestricted()) { return(this.Copy()); } OraclePermission permission = (OraclePermission)permission2.Copy(); permission._allowBlankPassword &= this.AllowBlankPassword; if ((this._keyvalues != null) && (permission._keyvalues != null)) { permission._keyvalues.Clear(); permission._keyvaluetree.Intersect(permission._keyvalues, this._keyvaluetree); } else { permission._keyvalues = null; permission._keyvaluetree = null; } if (permission.IsEmpty()) { permission = null; } return(permission); }