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);
}