public void Read (TProtocol iprot)
 {
   bool isset_Tokenizer = false;
   bool isset_Filters = false;
   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) {
           Tokenizer = new Tokenizer();
           Tokenizer.Read(iprot);
           isset_Tokenizer = true;
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.List) {
           {
             Filters = new List<TokenFilter>();
             TList _list10 = iprot.ReadListBegin();
             for( int _i11 = 0; _i11 < _list10.Count; ++_i11)
             {
               TokenFilter _elem12 = new TokenFilter();
               _elem12 = new TokenFilter();
               _elem12.Read(iprot);
               Filters.Add(_elem12);
             }
             iprot.ReadListEnd();
           }
           isset_Filters = true;
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
   if (!isset_Tokenizer)
     throw new TProtocolException(TProtocolException.INVALID_DATA);
   if (!isset_Filters)
     throw new TProtocolException(TProtocolException.INVALID_DATA);
 }
 public AnalyzerProperties(Tokenizer Tokenizer, List<TokenFilter> Filters) : this() {
   this.Tokenizer = Tokenizer;
   this.Filters = Filters;
 }