/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * Licensed 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. */ include "thrift/annotation/thrift.thrift" include "thrift/annotation/java.thrift" include "thrift/lib/thrift/any.thrift" package "test.dev/thrift/lib/java/test/wrapper" namespace java.swift com.facebook.thrift.test.wrapper @java.Adapter{ adapterClassName = "com.facebook.thrift.any.AnyAdapter", typeClassName = "com.facebook.thrift.any.Any", } typedef any.Any Any struct TestStruct { 1001: i32 context; 3: bool wrappedBoolean_field; 4: i32 wrappedInt_field; 10: binary wrappedByteBuf_field; 11: binary wrappedByteBuf_field2; 12: i32 wrappedDoubleAdaptedInt_field; 13: i32 wrappedSingleAdaptedInt_field; 14: list listAdaptedInt_field; 15: map>> nestedAdapted_field; 16: list anyList_field; 17: list wrappedDoubleAdaptedIntList_field; } @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.common.RetainedSlicedPooledByteBufTypeAdapter", typeClassName = "io.netty.buffer.ByteBuf", } typedef binary SlicedByteBuf @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.test.IntToStringTypeAdapter", typeClassName = "java.lang.String", } typedef i32 adaptedInt @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.test.ShortToStringTypeAdapter", typeClassName = "java.lang.String", } typedef i16 adaptedShort @java.Adapter{ adapterClassName = 'com.facebook.thrift.adapter.test.GenericTypeAdapter', typeClassName = 'com.facebook.thrift.adapter.test.Wrapped>', } typedef list doubleAdaptedIntList struct WrappedTestStruct { 1001: i32 context; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 3: bool wrappedBoolean_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 4: i32 wrappedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 10: SlicedByteBuf wrappedByteBuf_field; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.common.RetainedSlicedPooledByteBufTypeAdapter", typeClassName = "io.netty.buffer.ByteBuf", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 11: binary wrappedByteBuf_field2; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter", typeClassName = "java.lang.Long", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 12: adaptedInt wrappedDoubleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 13: adaptedInt wrappedSingleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 14: list listAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>>", } 15: map< adaptedInt, map> > nestedAdapted_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 16: list anyList_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>", } 17: doubleAdaptedIntList wrappedDoubleAdaptedIntList_field; } @thrift.Experimental @thrift.TerseWrite struct TerseWrappedTestStruct { 1001: i32 context; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 3: bool wrappedBoolean_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 4: i32 wrappedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 10: SlicedByteBuf wrappedByteBuf_field; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.common.RetainedSlicedPooledByteBufTypeAdapter", typeClassName = "io.netty.buffer.ByteBuf", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 11: binary wrappedByteBuf_field2; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter", typeClassName = "java.lang.Long", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 12: adaptedInt wrappedDoubleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 13: adaptedInt wrappedSingleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 14: list listAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>>", } 15: map>> nestedAdapted_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 16: list anyList_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>", } 17: doubleAdaptedIntList wrappedDoubleAdaptedIntList_field; } @java.Mutable @thrift.Experimental @thrift.TerseWrite struct MutableTerseWrappedTestStruct { 1001: i32 context; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 3: bool wrappedBoolean_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 4: i32 wrappedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 10: SlicedByteBuf wrappedByteBuf_field; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.common.RetainedSlicedPooledByteBufTypeAdapter", typeClassName = "io.netty.buffer.ByteBuf", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 11: binary wrappedByteBuf_field2; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter", typeClassName = "java.lang.Long", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 12: adaptedInt wrappedDoubleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 13: adaptedInt wrappedSingleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 14: list listAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>>", } 15: map< adaptedInt, map> > nestedAdapted_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 16: list anyList_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>", } 17: doubleAdaptedIntList wrappedDoubleAdaptedIntList_field; } safe permanent client exception WrappedTestException { 1001: i32 context; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 3: optional bool wrappedBoolean_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 4: i32 wrappedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 10: SlicedByteBuf wrappedByteBuf_field; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.common.RetainedSlicedPooledByteBufTypeAdapter", typeClassName = "io.netty.buffer.ByteBuf", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 11: binary wrappedByteBuf_field2; @java.Adapter{ adapterClassName = "com.facebook.thrift.adapter.test.StringToLongTypeAdapter", typeClassName = "java.lang.Long", } @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 12: adaptedInt wrappedDoubleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField", } 13: optional adaptedInt wrappedSingleAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 14: list listAdaptedInt_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>>", } 15: map< adaptedInt, map> > nestedAdapted_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>", } 16: list anyList_field; @java.Wrapper{ wrapperClassName = "com.facebook.thrift.wrapper.test.FieldWrapper>>", typeClassName = "com.facebook.thrift.wrapper.test.PoliciedField>>", } 17: doubleAdaptedIntList wrappedDoubleAdaptedIntList_field; }