public void Write(TProtocol oprot)
{
TStruct struc = new TStruct("PrincipalPrivilegeSet");
oprot.WriteStructBegin(struc);
TField field = new TField();
if (UserPrivileges != null && __isset.userPrivileges) {
field.Name = "userPrivileges";
field.Type = TType.Map;
field.ID = 1;
oprot.WriteFieldBegin(field);
{
oprot.WriteMapBegin(new TMap(TType.String, TType.List, UserPrivileges.Count));
foreach (string _iter33 in UserPrivileges.Keys)
{
oprot.WriteString(_iter33);
{
oprot.WriteListBegin(new TList(TType.Struct, UserPrivileges[_iter33].Count));
foreach (PrivilegeGrantInfo _iter34 in UserPrivileges[_iter33])
{
_iter34.Write(oprot);
}
oprot.WriteListEnd();
}
}
oprot.WriteMapEnd();
}
oprot.WriteFieldEnd();
}
if (GroupPrivileges != null && __isset.groupPrivileges) {
field.Name = "groupPrivileges";
field.Type = TType.Map;
field.ID = 2;
oprot.WriteFieldBegin(field);
{
oprot.WriteMapBegin(new TMap(TType.String, TType.List, GroupPrivileges.Count));
foreach (string _iter35 in GroupPrivileges.Keys)
{
oprot.WriteString(_iter35);
{
oprot.WriteListBegin(new TList(TType.Struct, GroupPrivileges[_iter35].Count));
foreach (PrivilegeGrantInfo _iter36 in GroupPrivileges[_iter35])
{
_iter36.Write(oprot);
}
oprot.WriteListEnd();
}
}
oprot.WriteMapEnd();
}
oprot.WriteFieldEnd();
}
if (RolePrivileges != null && __isset.rolePrivileges) {
field.Name = "rolePrivileges";
field.Type = TType.Map;
field.ID = 3;
oprot.WriteFieldBegin(field);
{
oprot.WriteMapBegin(new TMap(TType.String, TType.List, RolePrivileges.Count));
foreach (string _iter37 in RolePrivileges.Keys)
{
oprot.WriteString(_iter37);
{
oprot.WriteListBegin(new TList(TType.Struct, RolePrivileges[_iter37].Count));
foreach (PrivilegeGrantInfo _iter38 in RolePrivileges[_iter37])
{
_iter38.Write(oprot);
}
oprot.WriteListEnd();
}
}
oprot.WriteMapEnd();
}
oprot.WriteFieldEnd();
}
oprot.WriteFieldStop();
oprot.WriteStructEnd();
}