public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.String)
                        {
                            Gid = iprot.ReadString();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Bool)
                        {
                            IsCitation = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.Bool)
                        {
                            IsAbstract = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Struct)
                        {
                            CitedElement = new TDDIAbstractSACMElement();
                            CitedElement.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 5:
                        if (field.Type == TType.Struct)
                        {
                            AbstractForm = new TDDIAbstractSACMElement();
                            AbstractForm.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 6:
                        if (field.Type == TType.Struct)
                        {
                            Name = new TDDIAbstractLangString();
                            Name.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 7:
                        if (field.Type == TType.Struct)
                        {
                            Description = new TDDIDescription();
                            Description.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 8:
                        if (field.Type == TType.List)
                        {
                            {
                                ImplementationConstraint = new List <TDDIImplementationConstraintRef>();
                                TList _list1048 = iprot.ReadListBegin();
                                for (int _i1049 = 0; _i1049 < _list1048.Count; ++_i1049)
                                {
                                    TDDIImplementationConstraintRef _elem1050;
                                    _elem1050 = new TDDIImplementationConstraintRef();
                                    _elem1050.Read(iprot);
                                    ImplementationConstraint.Add(_elem1050);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 9:
                        if (field.Type == TType.List)
                        {
                            {
                                Note = new List <TDDINoteRef>();
                                TList _list1051 = iprot.ReadListBegin();
                                for (int _i1052 = 0; _i1052 < _list1051.Count; ++_i1052)
                                {
                                    TDDINoteRef _elem1053;
                                    _elem1053 = new TDDINoteRef();
                                    _elem1053.Read(iprot);
                                    Note.Add(_elem1053);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 10:
                        if (field.Type == TType.List)
                        {
                            {
                                TaggedValue = new List <TDDITaggedValueRef>();
                                TList _list1054 = iprot.ReadListBegin();
                                for (int _i1055 = 0; _i1055 < _list1054.Count; ++_i1055)
                                {
                                    TDDITaggedValueRef _elem1056;
                                    _elem1056 = new TDDITaggedValueRef();
                                    _elem1056.Read(iprot);
                                    TaggedValue.Add(_elem1056);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 11:
                        if (field.Type == TType.I32)
                        {
                            AssertionDeclaration = (TDDIAssertionDeclaration)iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 12:
                        if (field.Type == TType.List)
                        {
                            {
                                MetaClaim = new List <TDDIClaimRef>();
                                TList _list1057 = iprot.ReadListBegin();
                                for (int _i1058 = 0; _i1058 < _list1057.Count; ++_i1058)
                                {
                                    TDDIClaimRef _elem1059;
                                    _elem1059 = new TDDIClaimRef();
                                    _elem1059.Read(iprot);
                                    MetaClaim.Add(_elem1059);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 13:
                        if (field.Type == TType.Bool)
                        {
                            IsCounter = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 14:
                        if (field.Type == TType.List)
                        {
                            {
                                Source = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list1060 = iprot.ReadListBegin();
                                for (int _i1061 = 0; _i1061 < _list1060.Count; ++_i1061)
                                {
                                    TDDIAbstractArgumentAssetRef _elem1062;
                                    _elem1062 = new TDDIAbstractArgumentAssetRef();
                                    _elem1062.Read(iprot);
                                    Source.Add(_elem1062);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 15:
                        if (field.Type == TType.List)
                        {
                            {
                                Target = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list1063 = iprot.ReadListBegin();
                                for (int _i1064 = 0; _i1064 < _list1063.Count; ++_i1064)
                                {
                                    TDDIAbstractArgumentAssetRef _elem1065;
                                    _elem1065 = new TDDIAbstractArgumentAssetRef();
                                    _elem1065.Read(iprot);
                                    Target.Add(_elem1065);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 16:
                        if (field.Type == TType.Struct)
                        {
                            Reasoning = new TDDIArgumentReasoning();
                            Reasoning.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.String)
                        {
                            Gid = iprot.ReadString();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Bool)
                        {
                            IsCitation = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.Bool)
                        {
                            IsAbstract = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Struct)
                        {
                            CitedElement = new TDDIAbstractSACMElement();
                            CitedElement.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 5:
                        if (field.Type == TType.Struct)
                        {
                            AbstractForm = new TDDIAbstractSACMElement();
                            AbstractForm.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 6:
                        if (field.Type == TType.Struct)
                        {
                            Name = new TDDIAbstractLangString();
                            Name.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 7:
                        if (field.Type == TType.Struct)
                        {
                            Description = new TDDIDescription();
                            Description.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 8:
                        if (field.Type == TType.List)
                        {
                            {
                                ImplementationConstraint = new List <TDDIImplementationConstraintRef>();
                                TList _list876 = iprot.ReadListBegin();
                                for (int _i877 = 0; _i877 < _list876.Count; ++_i877)
                                {
                                    TDDIImplementationConstraintRef _elem878;
                                    _elem878 = new TDDIImplementationConstraintRef();
                                    _elem878.Read(iprot);
                                    ImplementationConstraint.Add(_elem878);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 9:
                        if (field.Type == TType.List)
                        {
                            {
                                Note = new List <TDDINoteRef>();
                                TList _list879 = iprot.ReadListBegin();
                                for (int _i880 = 0; _i880 < _list879.Count; ++_i880)
                                {
                                    TDDINoteRef _elem881;
                                    _elem881 = new TDDINoteRef();
                                    _elem881.Read(iprot);
                                    Note.Add(_elem881);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 10:
                        if (field.Type == TType.List)
                        {
                            {
                                TaggedValue = new List <TDDITaggedValueRef>();
                                TList _list882 = iprot.ReadListBegin();
                                for (int _i883 = 0; _i883 < _list882.Count; ++_i883)
                                {
                                    TDDITaggedValueRef _elem884;
                                    _elem884 = new TDDITaggedValueRef();
                                    _elem884.Read(iprot);
                                    TaggedValue.Add(_elem884);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 11:
                        if (field.Type == TType.I32)
                        {
                            AssertionDeclaration = (TDDIAssertionDeclaration)iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 12:
                        if (field.Type == TType.List)
                        {
                            {
                                MetaClaim = new List <TDDIClaimRef>();
                                TList _list885 = iprot.ReadListBegin();
                                for (int _i886 = 0; _i886 < _list885.Count; ++_i886)
                                {
                                    TDDIClaimRef _elem887;
                                    _elem887 = new TDDIClaimRef();
                                    _elem887.Read(iprot);
                                    MetaClaim.Add(_elem887);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 13:
                        if (field.Type == TType.Bool)
                        {
                            IsCounter = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 14:
                        if (field.Type == TType.List)
                        {
                            {
                                Source = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list888 = iprot.ReadListBegin();
                                for (int _i889 = 0; _i889 < _list888.Count; ++_i889)
                                {
                                    TDDIAbstractArgumentAssetRef _elem890;
                                    _elem890 = new TDDIAbstractArgumentAssetRef();
                                    _elem890.Read(iprot);
                                    Source.Add(_elem890);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 15:
                        if (field.Type == TType.List)
                        {
                            {
                                Target = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list891 = iprot.ReadListBegin();
                                for (int _i892 = 0; _i892 < _list891.Count; ++_i892)
                                {
                                    TDDIAbstractArgumentAssetRef _elem893;
                                    _elem893 = new TDDIAbstractArgumentAssetRef();
                                    _elem893.Read(iprot);
                                    Target.Add(_elem893);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 16:
                        if (field.Type == TType.Struct)
                        {
                            Reasoning = new TDDIArgumentReasoning();
                            Reasoning.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.String)
                        {
                            Gid = iprot.ReadString();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Bool)
                        {
                            IsCitation = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.Bool)
                        {
                            IsAbstract = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Struct)
                        {
                            CitedElement = new TDDIAbstractSACMElement();
                            CitedElement.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 5:
                        if (field.Type == TType.Struct)
                        {
                            AbstractForm = new TDDIAbstractSACMElement();
                            AbstractForm.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 6:
                        if (field.Type == TType.Struct)
                        {
                            Name = new TDDIAbstractLangString();
                            Name.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 7:
                        if (field.Type == TType.Struct)
                        {
                            Description = new TDDIDescription();
                            Description.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 8:
                        if (field.Type == TType.List)
                        {
                            {
                                ImplementationConstraint = new List <TDDIImplementationConstraintRef>();
                                TList _list900 = iprot.ReadListBegin();
                                for (int _i901 = 0; _i901 < _list900.Count; ++_i901)
                                {
                                    TDDIImplementationConstraintRef _elem902;
                                    _elem902 = new TDDIImplementationConstraintRef();
                                    _elem902.Read(iprot);
                                    ImplementationConstraint.Add(_elem902);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 9:
                        if (field.Type == TType.List)
                        {
                            {
                                Note = new List <TDDINoteRef>();
                                TList _list903 = iprot.ReadListBegin();
                                for (int _i904 = 0; _i904 < _list903.Count; ++_i904)
                                {
                                    TDDINoteRef _elem905;
                                    _elem905 = new TDDINoteRef();
                                    _elem905.Read(iprot);
                                    Note.Add(_elem905);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 10:
                        if (field.Type == TType.List)
                        {
                            {
                                TaggedValue = new List <TDDITaggedValueRef>();
                                TList _list906 = iprot.ReadListBegin();
                                for (int _i907 = 0; _i907 < _list906.Count; ++_i907)
                                {
                                    TDDITaggedValueRef _elem908;
                                    _elem908 = new TDDITaggedValueRef();
                                    _elem908.Read(iprot);
                                    TaggedValue.Add(_elem908);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 11:
                        if (field.Type == TType.I32)
                        {
                            AssertionDeclaration = (TDDIAssertionDeclaration)iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 12:
                        if (field.Type == TType.List)
                        {
                            {
                                MetaClaim = new List <TDDIClaimRef>();
                                TList _list909 = iprot.ReadListBegin();
                                for (int _i910 = 0; _i910 < _list909.Count; ++_i910)
                                {
                                    TDDIClaimRef _elem911;
                                    _elem911 = new TDDIClaimRef();
                                    _elem911.Read(iprot);
                                    MetaClaim.Add(_elem911);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 13:
                        if (field.Type == TType.Bool)
                        {
                            IsCounter = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 14:
                        if (field.Type == TType.List)
                        {
                            {
                                Source = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list912 = iprot.ReadListBegin();
                                for (int _i913 = 0; _i913 < _list912.Count; ++_i913)
                                {
                                    TDDIAbstractArgumentAssetRef _elem914;
                                    _elem914 = new TDDIAbstractArgumentAssetRef();
                                    _elem914.Read(iprot);
                                    Source.Add(_elem914);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 15:
                        if (field.Type == TType.List)
                        {
                            {
                                Target = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list915 = iprot.ReadListBegin();
                                for (int _i916 = 0; _i916 < _list915.Count; ++_i916)
                                {
                                    TDDIAbstractArgumentAssetRef _elem917;
                                    _elem917 = new TDDIAbstractArgumentAssetRef();
                                    _elem917.Read(iprot);
                                    Target.Add(_elem917);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 16:
                        if (field.Type == TType.Struct)
                        {
                            Reasoning = new TDDIArgumentReasoning();
                            Reasoning.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.Struct)
                        {
                            Assertion = new TDDIAbstractAssertion();
                            Assertion.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Struct)
                        {
                            ArgumentReasoning = new TDDIArgumentReasoning();
                            ArgumentReasoning.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.Struct)
                        {
                            ArtifactReference = new TDDIArtifactReference();
                            ArtifactReference.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }
Пример #5
0
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.String)
                        {
                            Gid = iprot.ReadString();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Bool)
                        {
                            IsCitation = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.Bool)
                        {
                            IsAbstract = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Struct)
                        {
                            CitedElement = new TDDIAbstractSACMElement();
                            CitedElement.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 5:
                        if (field.Type == TType.Struct)
                        {
                            AbstractForm = new TDDIAbstractSACMElement();
                            AbstractForm.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 6:
                        if (field.Type == TType.Struct)
                        {
                            Name = new TDDIAbstractLangString();
                            Name.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 7:
                        if (field.Type == TType.Struct)
                        {
                            Description = new TDDIDescription();
                            Description.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 8:
                        if (field.Type == TType.List)
                        {
                            {
                                ImplementationConstraint = new List <TDDIImplementationConstraintRef>();
                                TList _list1120 = iprot.ReadListBegin();
                                for (int _i1121 = 0; _i1121 < _list1120.Count; ++_i1121)
                                {
                                    TDDIImplementationConstraintRef _elem1122;
                                    _elem1122 = new TDDIImplementationConstraintRef();
                                    _elem1122.Read(iprot);
                                    ImplementationConstraint.Add(_elem1122);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 9:
                        if (field.Type == TType.List)
                        {
                            {
                                Note = new List <TDDINoteRef>();
                                TList _list1123 = iprot.ReadListBegin();
                                for (int _i1124 = 0; _i1124 < _list1123.Count; ++_i1124)
                                {
                                    TDDINoteRef _elem1125;
                                    _elem1125 = new TDDINoteRef();
                                    _elem1125.Read(iprot);
                                    Note.Add(_elem1125);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 10:
                        if (field.Type == TType.List)
                        {
                            {
                                TaggedValue = new List <TDDITaggedValueRef>();
                                TList _list1126 = iprot.ReadListBegin();
                                for (int _i1127 = 0; _i1127 < _list1126.Count; ++_i1127)
                                {
                                    TDDITaggedValueRef _elem1128;
                                    _elem1128 = new TDDITaggedValueRef();
                                    _elem1128.Read(iprot);
                                    TaggedValue.Add(_elem1128);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 11:
                        if (field.Type == TType.I32)
                        {
                            AssertionDeclaration = (TDDIAssertionDeclaration)iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 12:
                        if (field.Type == TType.List)
                        {
                            {
                                MetaClaim = new List <TDDIClaimRef>();
                                TList _list1129 = iprot.ReadListBegin();
                                for (int _i1130 = 0; _i1130 < _list1129.Count; ++_i1130)
                                {
                                    TDDIClaimRef _elem1131;
                                    _elem1131 = new TDDIClaimRef();
                                    _elem1131.Read(iprot);
                                    MetaClaim.Add(_elem1131);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 13:
                        if (field.Type == TType.Bool)
                        {
                            IsCounter = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 14:
                        if (field.Type == TType.List)
                        {
                            {
                                Source = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list1132 = iprot.ReadListBegin();
                                for (int _i1133 = 0; _i1133 < _list1132.Count; ++_i1133)
                                {
                                    TDDIAbstractArgumentAssetRef _elem1134;
                                    _elem1134 = new TDDIAbstractArgumentAssetRef();
                                    _elem1134.Read(iprot);
                                    Source.Add(_elem1134);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 15:
                        if (field.Type == TType.List)
                        {
                            {
                                Target = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list1135 = iprot.ReadListBegin();
                                for (int _i1136 = 0; _i1136 < _list1135.Count; ++_i1136)
                                {
                                    TDDIAbstractArgumentAssetRef _elem1137;
                                    _elem1137 = new TDDIAbstractArgumentAssetRef();
                                    _elem1137.Read(iprot);
                                    Target.Add(_elem1137);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 16:
                        if (field.Type == TType.Struct)
                        {
                            Reasoning = new TDDIArgumentReasoning();
                            Reasoning.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.String)
                        {
                            Gid = iprot.ReadString();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Bool)
                        {
                            IsCitation = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.Bool)
                        {
                            IsAbstract = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Struct)
                        {
                            CitedElement = new TDDIAbstractSACMElement();
                            CitedElement.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 5:
                        if (field.Type == TType.Struct)
                        {
                            AbstractForm = new TDDIAbstractSACMElement();
                            AbstractForm.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 6:
                        if (field.Type == TType.Struct)
                        {
                            Name = new TDDIAbstractLangString();
                            Name.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 7:
                        if (field.Type == TType.Struct)
                        {
                            Description = new TDDIDescription();
                            Description.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 8:
                        if (field.Type == TType.List)
                        {
                            {
                                ImplementationConstraint = new List <TDDIImplementationConstraintRef>();
                                TList _list828 = iprot.ReadListBegin();
                                for (int _i829 = 0; _i829 < _list828.Count; ++_i829)
                                {
                                    TDDIImplementationConstraintRef _elem830;
                                    _elem830 = new TDDIImplementationConstraintRef();
                                    _elem830.Read(iprot);
                                    ImplementationConstraint.Add(_elem830);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 9:
                        if (field.Type == TType.List)
                        {
                            {
                                Note = new List <TDDINoteRef>();
                                TList _list831 = iprot.ReadListBegin();
                                for (int _i832 = 0; _i832 < _list831.Count; ++_i832)
                                {
                                    TDDINoteRef _elem833;
                                    _elem833 = new TDDINoteRef();
                                    _elem833.Read(iprot);
                                    Note.Add(_elem833);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 10:
                        if (field.Type == TType.List)
                        {
                            {
                                TaggedValue = new List <TDDITaggedValueRef>();
                                TList _list834 = iprot.ReadListBegin();
                                for (int _i835 = 0; _i835 < _list834.Count; ++_i835)
                                {
                                    TDDITaggedValueRef _elem836;
                                    _elem836 = new TDDITaggedValueRef();
                                    _elem836.Read(iprot);
                                    TaggedValue.Add(_elem836);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 11:
                        if (field.Type == TType.I32)
                        {
                            AssertionDeclaration = (TDDIAssertionDeclaration)iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 12:
                        if (field.Type == TType.List)
                        {
                            {
                                MetaClaim = new List <TDDIClaimRef>();
                                TList _list837 = iprot.ReadListBegin();
                                for (int _i838 = 0; _i838 < _list837.Count; ++_i838)
                                {
                                    TDDIClaimRef _elem839;
                                    _elem839 = new TDDIClaimRef();
                                    _elem839.Read(iprot);
                                    MetaClaim.Add(_elem839);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 13:
                        if (field.Type == TType.Bool)
                        {
                            IsCounter = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 14:
                        if (field.Type == TType.List)
                        {
                            {
                                Source = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list840 = iprot.ReadListBegin();
                                for (int _i841 = 0; _i841 < _list840.Count; ++_i841)
                                {
                                    TDDIAbstractArgumentAssetRef _elem842;
                                    _elem842 = new TDDIAbstractArgumentAssetRef();
                                    _elem842.Read(iprot);
                                    Source.Add(_elem842);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 15:
                        if (field.Type == TType.List)
                        {
                            {
                                Target = new List <TDDIAbstractArgumentAssetRef>();
                                TList _list843 = iprot.ReadListBegin();
                                for (int _i844 = 0; _i844 < _list843.Count; ++_i844)
                                {
                                    TDDIAbstractArgumentAssetRef _elem845;
                                    _elem845 = new TDDIAbstractArgumentAssetRef();
                                    _elem845.Read(iprot);
                                    Target.Add(_elem845);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 16:
                        if (field.Type == TType.Struct)
                        {
                            Reasoning = new TDDIArgumentReasoning();
                            Reasoning.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }