示例#1
0
        /// <summary>Convert a Json map to a AclStatus object.</summary>
        public static AclStatus ToAclStatus <_T0>(IDictionary <_T0> json)
        {
            if (json == null)
            {
                return(null);
            }
            IDictionary <object, object> m = (IDictionary <object, object>)json[typeof(AclStatus
                                                                                       ).Name];

            AclStatus.Builder aclStatusBuilder = new AclStatus.Builder();
            aclStatusBuilder.Owner((string)m["owner"]);
            aclStatusBuilder.Group((string)m["group"]);
            aclStatusBuilder.StickyBit((bool)m["stickyBit"]);
            string permString = (string)m["permission"];

            if (permString != null)
            {
                FsPermission permission = ToFsPermission(permString, (bool)m["aclBit"], (bool)m["encBit"
                                                         ]);
                aclStatusBuilder.SetPermission(permission);
            }
            IList <object>   entries      = (IList <object>)m["entries"];
            IList <AclEntry> aclEntryList = new AList <AclEntry>();

            foreach (object entry in entries)
            {
                AclEntry aclEntry = AclEntry.ParseAclEntry((string)entry, true);
                aclEntryList.AddItem(aclEntry);
            }
            aclStatusBuilder.AddEntries(aclEntryList);
            return(aclStatusBuilder.Build());
        }