/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ namespace java org.apache.thrift.partial // This thrift file is meant for testing partial deserialization. // It includes all field types and most combinations of complex types. // Those fields help ensure correctness of partial deserialization. enum TstEnum { UNKNOWN = 0, E_ONE = 1, E_TWO = 2 } struct SmallStruct { // Primitive fields 1: optional byte byteField; 2: optional i16 i16Field; 3: optional i32 i32Field; 4: optional i64 i64Field; 5: optional double doubleField; 6: optional string stringField; // Enum 7: optional TstEnum enumField; } // TODO(kpandit): Need to add bool field struct TestStruct { // Primitive fields 1: optional byte byteField; 2: optional i16 i16Field; 3: optional i32 i32Field; 4: optional i64 i64Field; 5: optional double doubleField; 6: optional string stringField; // Enum 7: optional TstEnum enumField; 8: optional binary binaryField; // List 10: optional list byteList; 11: optional list i16List; 12: optional list i32List; 13: optional list i64List; 14: optional list doubleList; 15: optional list stringList; 16: optional list enumList; 17: optional list> listList; 18: optional list> setList; 19: optional list> mapList; 20: optional list structList; 21: optional list binaryList; // Set 30: optional set byteSet; 31: optional set i16Set; 32: optional set i32Set; 33: optional set i64Set; 34: optional set doubleSet; 35: optional set stringSet; 36: optional set enumSet; 37: optional set> listSet (nolint = "set.value.type"); 38: optional set> setSet (nolint = "set.value.type"); 39: optional set> mapSet (nolint = "set.value.type"); 40: optional set structSet (nolint = "set.value.type"); 41: optional set binarySet; // Map 50: optional map byteMap; 51: optional map i16Map; 52: optional map i32Map; 53: optional map i64Map; 54: optional map doubleMap; 55: optional map stringMap; 56: optional map enumMap; 57: optional map> listMap; 58: optional map> setMap; 59: optional map> mapMap; 60: optional map structMap (nolint = "map.key.type"); 61: optional map binaryMap; 70: optional SmallStruct structField; } struct InnermostStruct { 1: optional string value; 2: optional i32 intValue; } struct InnerStruct { 1: optional InnermostStruct value; 2: optional i32 intValue; } struct OuterStruct { 1: optional InnerStruct value; 2: optional map structMap; } union SimpleUnion { 1: optional i32 intValue; 2: optional string stringValue; } struct StructWithUnions { 1: optional i32 intValue; 2: optional SmallStruct smallStruct; 3: optional SimpleUnion simpleUnion; 4: optional list unionList; 5: optional set unionSet (nolint = "set.value.type"); 6: optional map keyUnionMap (nolint = "map.key.type"); 7: optional map valUnionMap; 8: optional map unionMap (nolint = "map.key.type"); }