public override bool IsSubsetOf(IPermission target) { HostProtectionPermission hostProtectionPermission = this.Cast(target); if (hostProtectionPermission == null) { return(this._resources == HostProtectionResource.None); } return(hostProtectionPermission.IsUnrestricted() || (!this.IsUnrestricted() && (this._resources & ~hostProtectionPermission._resources) == HostProtectionResource.None)); }
public override IPermission Intersect(IPermission target) { HostProtectionPermission hostProtectionPermission = this.Cast(target); if (hostProtectionPermission == null) { return(null); } if (this.IsUnrestricted() && hostProtectionPermission.IsUnrestricted()) { return(new HostProtectionPermission(PermissionState.Unrestricted)); } if (this.IsUnrestricted()) { return(hostProtectionPermission.Copy()); } if (hostProtectionPermission.IsUnrestricted()) { return(this.Copy()); } return(new HostProtectionPermission(this._resources & hostProtectionPermission._resources)); }
public override IPermission Union(IPermission target) { HostProtectionPermission hpp = Cast(target); if (hpp == null) { return(this.Copy()); } if (this.IsUnrestricted() || hpp.IsUnrestricted()) { return(new HostProtectionPermission(PermissionState.Unrestricted)); } return(new HostProtectionPermission(_resources | hpp._resources)); }
public override bool IsSubsetOf(IPermission target) { HostProtectionPermission hpp = Cast(target); if (hpp == null) { return(_resources == HostProtectionResource.None); } if (hpp.IsUnrestricted()) { return(true); } if (this.IsUnrestricted()) { return(false); } return((_resources & ~hpp._resources) == 0); }