@@ -86,14 +86,14 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
86
86
List <FieldDescriptorProto > fields = new ArrayList <FieldDescriptorProto >();
87
87
int index = 1 ;
88
88
for (Table .TableFieldSchema BQTableField : BQTableSchema .getFieldsList ()) {
89
+ String currentScope = scope + "__" + BQTableField .getName ();
89
90
if (BQTableField .getType () == Table .TableFieldSchema .Type .STRUCT ) {
90
91
ImmutableList <Table .TableFieldSchema > fieldList =
91
92
ImmutableList .copyOf (BQTableField .getFieldsList ());
92
- String currentScope = scope + "__" + BQTableField .getName ();
93
93
if (dependencyMap .containsKey (fieldList )) {
94
94
Descriptor descriptor = dependencyMap .get (fieldList );
95
95
dependenciesList .add (descriptor .getFile ());
96
- fields .add (ConvertBQStructToProtoMessage (BQTableField , index ++, descriptor .getName ()));
96
+ fields .add (ConvertBQTableFieldToProtoField (BQTableField , index ++, descriptor .getName ()));
97
97
} else {
98
98
Descriptor descriptor =
99
99
ConvertBQTableSchemaToProtoDescriptorImpl (
@@ -102,10 +102,10 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
102
102
dependencyMap );
103
103
dependenciesList .add (descriptor .getFile ());
104
104
dependencyMap .put (fieldList , descriptor );
105
- fields .add (ConvertBQStructToProtoMessage (BQTableField , index ++, currentScope ));
105
+ fields .add (ConvertBQTableFieldToProtoField (BQTableField , index ++, currentScope ));
106
106
}
107
107
} else {
108
- fields .add (ConvertBQTableFieldToProtoField (BQTableField , index ++));
108
+ fields .add (ConvertBQTableFieldToProtoField (BQTableField , index ++, currentScope ));
109
109
}
110
110
}
111
111
FileDescriptor [] dependenciesArray = new FileDescriptor [dependenciesList .size ()];
@@ -121,37 +121,27 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
121
121
}
122
122
123
123
/**
124
- * Constructs a FieldDescriptorProto for non-struct BQ fields.
124
+ * Converts a BQTableField to ProtoField
125
125
*
126
126
* @param BQTableField BQ Field used to construct a FieldDescriptorProto
127
127
* @param index Index for protobuf fields.
128
+ * @param scope used to name descriptors
128
129
*/
129
130
private static FieldDescriptorProto ConvertBQTableFieldToProtoField (
130
- Table .TableFieldSchema BQTableField , int index ) {
131
- String fieldName = BQTableField .getName ();
132
- Table .TableFieldSchema .Mode mode = BQTableField .getMode ();
133
- return FieldDescriptorProto .newBuilder ()
134
- .setName (fieldName )
135
- .setType ((FieldDescriptorProto .Type ) BQTableSchemaTypeMap .get (BQTableField .getType ()))
136
- .setLabel ((FieldDescriptorProto .Label ) BQTableSchemaModeMap .get (mode ))
137
- .setNumber (index )
138
- .build ();
139
- }
140
-
141
- /**
142
- * Constructs a FieldDescriptorProto for a Struct type BQ field.
143
- *
144
- * @param BQTableField BQ Field used to construct a FieldDescriptorProto
145
- * @param index Index for protobuf fields.
146
- * @param scope Need scope to prevent naming issues
147
- */
148
- private static FieldDescriptorProto ConvertBQStructToProtoMessage (
149
131
Table .TableFieldSchema BQTableField , int index , String scope ) {
150
- String fieldName = BQTableField .getName ();
151
132
Table .TableFieldSchema .Mode mode = BQTableField .getMode ();
133
+ String fieldName = BQTableField .getName ();
134
+ if (BQTableField .getType () == Table .TableFieldSchema .Type .STRUCT ) {
135
+ return FieldDescriptorProto .newBuilder ()
136
+ .setName (fieldName )
137
+ .setTypeName (scope )
138
+ .setLabel ((FieldDescriptorProto .Label ) BQTableSchemaModeMap .get (mode ))
139
+ .setNumber (index )
140
+ .build ();
141
+ }
152
142
return FieldDescriptorProto .newBuilder ()
153
143
.setName (fieldName )
154
- .setTypeName ( scope )
144
+ .setType (( FieldDescriptorProto . Type ) BQTableSchemaTypeMap . get ( BQTableField . getType ()) )
155
145
.setLabel ((FieldDescriptorProto .Label ) BQTableSchemaModeMap .get (mode ))
156
146
.setNumber (index )
157
147
.build ();
0 commit comments