IsEmpty() public method

public IsEmpty ( ) : bool
return bool
コード例 #1
0
        /// <summary>创建一个权限,该权限是当前权限与指定权限的并集。</summary>
        /// <returns>一个新权限,它表示当前权限与指定权限的并集。</returns>
        /// <param name="other">将与当前权限合并的权限。它必须与当前权限属于同一类型。</param>
        /// <exception cref="T:System.ArgumentException">
        /// <paramref name="other" /> 参数不是 null,而且与当前权限不是同一类型。</exception>
        public override IPermission Union(IPermission other)
        {
            if (other == null)
            {
                return(this.Copy());
            }
            FileIOPermission fileIoPermission = other as FileIOPermission;

            if (fileIoPermission == null)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", (object)this.GetType().FullName));
            }
            if (this.IsUnrestricted() || fileIoPermission.IsUnrestricted())
            {
                return((IPermission) new FileIOPermission(PermissionState.Unrestricted));
            }
            FileIOAccess fileIoAccess1 = this.m_read == null ? fileIoPermission.m_read : this.m_read.Union(fileIoPermission.m_read);
            FileIOAccess fileIoAccess2 = this.m_write == null ? fileIoPermission.m_write : this.m_write.Union(fileIoPermission.m_write);
            FileIOAccess fileIoAccess3 = this.m_append == null ? fileIoPermission.m_append : this.m_append.Union(fileIoPermission.m_append);
            FileIOAccess fileIoAccess4 = this.m_pathDiscovery == null ? fileIoPermission.m_pathDiscovery : this.m_pathDiscovery.Union(fileIoPermission.m_pathDiscovery);
            FileIOAccess fileIoAccess5 = this.m_viewAcl == null ? fileIoPermission.m_viewAcl : this.m_viewAcl.Union(fileIoPermission.m_viewAcl);
            FileIOAccess fileIoAccess6 = this.m_changeAcl == null ? fileIoPermission.m_changeAcl : this.m_changeAcl.Union(fileIoPermission.m_changeAcl);

            if ((fileIoAccess1 == null || fileIoAccess1.IsEmpty()) && (fileIoAccess2 == null || fileIoAccess2.IsEmpty()) && ((fileIoAccess3 == null || fileIoAccess3.IsEmpty()) && (fileIoAccess4 == null || fileIoAccess4.IsEmpty())) && ((fileIoAccess5 == null || fileIoAccess5.IsEmpty()) && (fileIoAccess6 == null || fileIoAccess6.IsEmpty())))
            {
                return((IPermission)null);
            }
            return((IPermission) new FileIOPermission(PermissionState.None)
            {
                m_unrestricted = false, m_read = fileIoAccess1, m_write = fileIoAccess2, m_append = fileIoAccess3, m_pathDiscovery = fileIoAccess4, m_viewAcl = fileIoAccess5, m_changeAcl = fileIoAccess6
            });
        }
コード例 #2
0
        public override IPermission Union(IPermission other)
        {
            if (other == null)
            {
                return(this.Copy());
            }
            FileIOPermission permission = other as FileIOPermission;

            if (permission == null)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", new object[] { base.GetType().FullName }));
            }
            if (this.IsUnrestricted() || permission.IsUnrestricted())
            {
                return(new FileIOPermission(PermissionState.Unrestricted));
            }
            FileIOAccess access  = (this.m_read == null) ? permission.m_read : this.m_read.Union(permission.m_read);
            FileIOAccess access2 = (this.m_write == null) ? permission.m_write : this.m_write.Union(permission.m_write);
            FileIOAccess access3 = (this.m_append == null) ? permission.m_append : this.m_append.Union(permission.m_append);
            FileIOAccess access4 = (this.m_pathDiscovery == null) ? permission.m_pathDiscovery : this.m_pathDiscovery.Union(permission.m_pathDiscovery);
            FileIOAccess access5 = (this.m_viewAcl == null) ? permission.m_viewAcl : this.m_viewAcl.Union(permission.m_viewAcl);
            FileIOAccess access6 = (this.m_changeAcl == null) ? permission.m_changeAcl : this.m_changeAcl.Union(permission.m_changeAcl);

            if (((((access == null) || access.IsEmpty()) && ((access2 == null) || access2.IsEmpty())) && (((access3 == null) || access3.IsEmpty()) && ((access4 == null) || access4.IsEmpty()))) && (((access5 == null) || access5.IsEmpty()) && ((access6 == null) || access6.IsEmpty())))
            {
                return(null);
            }
            return(new FileIOPermission(PermissionState.None)
            {
                m_unrestricted = false, m_read = access, m_write = access2, m_append = access3, m_pathDiscovery = access4, m_viewAcl = access5, m_changeAcl = access6
            });
        }
コード例 #3
0
        public override IPermission Intersect(IPermission target)
        {
            if (target == null)
            {
                return(null);
            }

            FileIOPermission operand = target as FileIOPermission;

            if (operand == null)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", this.GetType().FullName));
            }
            else if (this.IsUnrestricted())
            {
                return(target.Copy());
            }

            if (operand.IsUnrestricted())
            {
                return(this.Copy());
            }

            FileIOAccess intersectRead          = this.m_read == null ? null : this.m_read.Intersect(operand.m_read);
            FileIOAccess intersectWrite         = this.m_write == null ? null : this.m_write.Intersect(operand.m_write);
            FileIOAccess intersectAppend        = this.m_append == null ? null : this.m_append.Intersect(operand.m_append);
            FileIOAccess intersectPathDiscovery = this.m_pathDiscovery == null ? null : this.m_pathDiscovery.Intersect(operand.m_pathDiscovery);
            FileIOAccess intersectViewAcl       = this.m_viewAcl == null ? null : this.m_viewAcl.Intersect(operand.m_viewAcl);
            FileIOAccess intersectChangeAcl     = this.m_changeAcl == null ? null : this.m_changeAcl.Intersect(operand.m_changeAcl);

            if ((intersectRead == null || intersectRead.IsEmpty()) &&
                (intersectWrite == null || intersectWrite.IsEmpty()) &&
                (intersectAppend == null || intersectAppend.IsEmpty()) &&
                (intersectPathDiscovery == null || intersectPathDiscovery.IsEmpty()) &&
                (intersectViewAcl == null || intersectViewAcl.IsEmpty()) &&
                (intersectChangeAcl == null || intersectChangeAcl.IsEmpty()))
            {
                return(null);
            }

            FileIOPermission intersectPermission = new FileIOPermission(PermissionState.None);

            intersectPermission.m_unrestricted  = false;
            intersectPermission.m_read          = intersectRead;
            intersectPermission.m_write         = intersectWrite;
            intersectPermission.m_append        = intersectAppend;
            intersectPermission.m_pathDiscovery = intersectPathDiscovery;
            intersectPermission.m_viewAcl       = intersectViewAcl;
            intersectPermission.m_changeAcl     = intersectChangeAcl;

            return(intersectPermission);
        }
コード例 #4
0
        public override IPermission Union(IPermission other)
        {
            if (other == null)
            {
                return(this.Copy());
            }

            FileIOPermission operand = other as FileIOPermission;

            if (operand == null)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", this.GetType().FullName));
            }

            if (this.IsUnrestricted() || operand.IsUnrestricted())
            {
                return(new FileIOPermission(PermissionState.Unrestricted));
            }

            FileIOAccess unionRead          = this.m_read == null ? operand.m_read : this.m_read.Union(operand.m_read);
            FileIOAccess unionWrite         = this.m_write == null ? operand.m_write : this.m_write.Union(operand.m_write);
            FileIOAccess unionAppend        = this.m_append == null ? operand.m_append : this.m_append.Union(operand.m_append);
            FileIOAccess unionPathDiscovery = this.m_pathDiscovery == null ? operand.m_pathDiscovery : this.m_pathDiscovery.Union(operand.m_pathDiscovery);
            FileIOAccess unionViewAcl       = this.m_viewAcl == null ? operand.m_viewAcl : this.m_viewAcl.Union(operand.m_viewAcl);
            FileIOAccess unionChangeAcl     = this.m_changeAcl == null ? operand.m_changeAcl : this.m_changeAcl.Union(operand.m_changeAcl);

            if ((unionRead == null || unionRead.IsEmpty()) &&
                (unionWrite == null || unionWrite.IsEmpty()) &&
                (unionAppend == null || unionAppend.IsEmpty()) &&
                (unionPathDiscovery == null || unionPathDiscovery.IsEmpty()) &&
                (unionViewAcl == null || unionViewAcl.IsEmpty()) &&
                (unionChangeAcl == null || unionChangeAcl.IsEmpty()))
            {
                return(null);
            }

            FileIOPermission unionPermission = new FileIOPermission(PermissionState.None);

            unionPermission.m_unrestricted  = false;
            unionPermission.m_read          = unionRead;
            unionPermission.m_write         = unionWrite;
            unionPermission.m_append        = unionAppend;
            unionPermission.m_pathDiscovery = unionPathDiscovery;
            unionPermission.m_viewAcl       = unionViewAcl;
            unionPermission.m_changeAcl     = unionChangeAcl;

            return(unionPermission);
        }